类的对象和类的成员一样吗(类的对象和类的成员有什么区别)

之前的小文章《C++程序是由类和函数组成的,模板也分为类模板和函数模板。解释完一个函数模板后,当编译系统找到对应的函数调用时,会根据实参中的类型确认是否匹配函数模板中对应的形参,然后生成一个重载的函数。重载函数的定义体与函数模板的定义体相同,称为模板函数。”。在上一篇文章中,我们介绍了函数模板,然后我们谈到了类模板。

类的对象和类的成员一样吗(类的对象和类的成员有什么区别)

类模板类似于函数模板。它可以为不同的数据类型定义一个模板,引用时用不同的数据类型实例化类模板,从而形成类的集合。类模板实际上是函数模板的一般化。您可以使用相同的类模板来构建任何类型的对象集合。

1 类模板的定义

类模板和函数模板的定义格式基本相同。

模板& lt& lt模板参数表>:& gtclass & lt类名>:{ & ltclass >:};其中template是关键字,模板参数表用一对尖括号括起来,一个或多个模板参数不能是空。

2使用类模板

像函数模板一样,类模板不能直接使用。必须先将其实例化到对应的模板类中,然后才能定义模板类的对象,才能使用。如程序221.cpp所示

//案例名:使用类模板//程序名:proj 2 _ 21 . CPP # include < iostream & gt;# include & lt字符串& gt使用命名空间std模板& ltT类& gtA1类{ public: A1(T a,T b){ x = a;y = b;} T sum(){ T tempsum = x+y;返回tempsum} private:T x;t y;};int main(){ A1 & lt;int & gtA (7.0,6.5);cout & lt& lt"A的元素之和是:& # 34;& lt& lta . sum()& lt;& ltendlA1 & ltdouble & gtB (1.0,6);cout & lt& lt"B的元素之和是:& # 34;& lt& ltb . sum()& lt;& ltendl返回0;}程序执行的结果如图2-21所示。

图2-21执行结果

说明程序第三行的“std”是C++的标准命名室空,里面包含了所有的标准类库,定义了头文件的符号。使用命名空间std是告诉编译器在标准命名空之间使用std,程序中的头在std中找到。

名称空间是名称的空空间。这是用来避免名字冲突的。您可以在不同的空房间中使用相同的名称,而不会发生名称冲突。它的声明就像声明一个类一样,例如:

命名空间A{int f( ) {…};char g() {…};}使用name 空中的函数时,有以下几种方法。

就像声明一个类的成员函数一样,只是类名换成了空间名“A::f();”。可以用 using 关键字“using namespace A;”,这样以后的代码使用的就是名字空中的函数了。

vector和list类型都是系统定义的类。例如,当设置vetor时,“Vector ;ivec(12,30);”,与模板类的定义方法一致。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/370066.html

发表回复

登录后才能评论