2620程序设计实习内容摘要:
public: void setBaseElement(T arg, int index)。 }。 template class T, int size void baseT,size::setBaseElement(T arg, int index) { elements[index] = arg。 } template class T class son:public basestring, 5{ T elements[5]。 public: void setSonElement(T arg, int index)。 void printElement(int index)。 }。 template class T void sonT::setSonElement(T arg, int index) { elements[index] = arg。 return。 } template class T void sonT::printElement(int index) { coutbasestring, 5::elements[index] “。 coutelements[index] endl。 return。 } sonint sonObj。 类模板从普通类派生 class base{ protected: int size。 string *ptr。 public: base(int length)。 ~base()。 void setBaseElement(string arg, int index)。 }。 base::base(int length) {size = length。 ptr = new string[size]。 return。 } base::~base() { delete [] ptr。 return。 } void base::setBaseElement(string arg, int index) { *(ptr+index) = arg。 } template class TSon class son:public base{ TSon *sonPtr。 public: son(int length)。 ~son()。 void setSonElement(TSon arg, int index)。 void printElement(int index)。 }。 template class TSon sonTSon::son(int length):base(length) { sonPtr = new TSon[size]。 return。 } template class TSon sonTSon::~son() { delete[ ] sonPtr。 return。 } template class TSon void sonTSon::setSonElement(TSon arg, int index) { *(sonPtr+index) = arg。 return。 } template class TSon void sonTSon::printElement(int index) { cout*(ptr+index) *(sonPtr+index)endl。 return。 } sonint test(5)。 普通类从模板类派生 template class T, int size class base{ protected: T elements[size]。 public: void setBaseElement(T arg, int index)。 }。 template class T, int size void baseT,size::setBaseElement(T arg, int index) { elements[index] = arg。 return。 } class son:public basestring, 5{ int elements[5]。 public: void setSonElement(int arg, int index)。 void printElement(int index)。 }。 void son::setSonElement(int arg, int index) { elements[index] = arg。 return。 } void son::printElement(int index) { coutbasestring, 5::elements[index] “。 coutelements[index] endl。 return。 } son sonObj。 类模板 问题的提出 类模板的定义 模板类的概念 定义类模板的成员函数 使用类模板声明对象 类模板的非类型参数 类模板与继承 类模板与友元函数 类模板与静态变量 类模板与友员函数 把普通函数声明为类模板的友员函数 利用类型参数,把模板函数声明为对应模板类的友员函数 把其他类的成员函数声明为类模板的友员函数 利用类型参数,把其他模板类的成员函数声明为对应模板类的友员函数 把普通类声明为类模板的友员类 利用类型参数,把一个模板类声明为对应模板类的友员类 把普通函数声明为类模板的友员函数 template class T, int size class CTemp{ friend void func(int)。 private: T elements[size]。 public: CTemp(T arg)。 }。 void func(int size){ CTempint, size a(10)。 //error: size is a variable CTempint, 50 b(10)。 //ok CTempdouble, 50 c()。 //ok int i。 for(i=0。 i50。 i++) { cout[i]“ ” [i]endl。 } return。 } 利用类型参数,把模板函数声明为对应模板类的友员函数 template class T, int size class CTemp{ friend void func(T arg)。 private: T elements[size]。 public: CTemp(T arg)。 }。 template class T void func(T arg){ CTempT, 50 a(10)。 int i。 for(i=0。 i50。 i++) { cout[i] endl。 } return。 } func(5)。 //ok func()。 //ok template class T void func(T arg){ CTempint, 50 b(10)。 CTempdouble, 50 c()。 int i。 for(i=0。 i50。 i++) { cout[i]“ ” [i]endl。 } return。 } func(5)。 //error: cannot access private member declared in CTempdouble, 50 func()。 //error: cannot access private member declared in CTempint, 50 把其他类的成员函数声明为类模板的友员函数 template class T, int size class CTemp{ friend void myClass::func()。 private: T elements[size]。 public: CTemp(T arg)。 }。 void myClass::func(){ CTempint, 50 b(10)。 CTempdouble, 50 c()。 int i。 for(i=0。 i50。 i++) { cout[i]“ ” [i]endl。 } return。 } 利用类型参数,把其他模板类的成员函数声明为对应模板类的友员函数 template class T, int size class CTemp{ friend void myClassT::func()。 private: T elements[size]。 public: CTemp(T arg)。 }。 template class T void myClassT ::func(){ CTempT, 50 a(10)。 int i。 for(i=0。 i50。 i++) { cout[i]endl。 } return。 } myClassint obj。 ()。 //ok template class T void myClassT ::func(){ CTempT, 50 a(10)。 CTempint, 50 b(10)。 CTempdouble, 50 c(10)。 int i。 for(i=0。 i50。 i++) { cout[i]“ ”。 cout[i]“ ”。 cout[i]endl。 } return。 } myClassint objA。 myClassdouble objB。 ()。 //error: cannot access private member declared in CTempdouble, 50 ()。 //error: cannot access private member declared in CTempint, 50。2620程序设计实习
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
27174administrator
发表于 2025-04-21
若 R∈ BCNF 所有非主属性对每一个码都是完全函数依赖 所有的主属性对每一个不包含它的码,也是完全函数依赖 没有任何属性完全函数依赖于非码的任何一组属性 R ∈ BCNF R ∈ 3NF 充分 不必要 An Introduction to Database System BCNF(续) [例 5] 关系模式 C( Cno, Cname, Po) C∈ 3NF C∈
267414微软用户
行,为钢材价格上涨提供宽松环境。 美、日两国,为拉动经济增长、促进就业,近期都推出了新的经济刺激计划,对整体国际资本市场信心形成拉动。 打造全球最大的钢铁信息和钢铁交易平台 美国道琼斯工业指数走势图 打造全球最大的钢铁信息和钢铁交易平台 美国原油期货价格走势图 打造全球最大的钢铁信息和钢铁交易平台 上证综合指数走势图 打造全球最大的钢铁信息和钢铁交易平台 • 第二, 9月份开始
272080我的学习成果展示
设计可以让学生们更多地了解这座水上城市的特点。 教学中教师交给孩子们查找、搜集资料的方法,让他们感受到恰当地应用信息技术的好处。 在搜集、整理、描述信息的过程中培养学生的自主学习能力,不断丰富知识。 本课突出了教师的主导作用,强化了学生的主体地位,在师生的
261二次函数图象和性质2
? 抛物线 y=x2 向 下 平移 1个单位 (1)得到抛物线 y=2x2+6 (2)得到抛物线 y=2x2- y=x2- 1 y=x2 抛物线 y=x2+1 一般地 ,抛物线 y=ax2+k有如下特点 : (1)当 a0时 , 开口向上。 当 a0时 ,开口向下。 (2)对称轴是 y轴。 (3)顶点是 (0,k). 1 2 3 4 5 x 1 2 3 4 5 6 7 8 9 10 y o 1