首页 > 编程知识 正文

c指针详解经典非常详细,c++指针详解

时间:2023-05-05 00:41:58 阅读:167920 作者:3863

C的Template在很多地方使用了typename和class这两个关键字。 有时这两个会被替换,这两个关键字完全相同吗?

其实class是用来定义类的。 在模板中引入c后,最初定义模板的方法是:templateclass T。 其中class关键字表示t是类型,然后引入了typename关键字,因为在class两者中的使用可能会导致混乱。 其作用和class一样,后面的符号表示是类型。 像这样

在templatetypename T .模板定义语法中,关键字class的作用与typename完全相同

区分模板和模板类的概念

类模板(类生成类)允许用户定义类的模式。 这样,类中的特定数据成员、默认成员函数参数和特定成员函数的返回值可以是任何类型,包括系统定义类型和用户定义类型。

如果无法确定类中数据成员的数据类型,或者无法确定成员函数的参数或返回类型,则必须将该类声明为模板。 它的存在代表的是类,而不是具体实际的类。

定义类模板:

定义类模板。 一般有两个内容:

A .他说。 要首先定义类,请使用以下格式:

templateclass T

class test

{

.

}

test是类名,在类定义体中,如果要采用公共数据类型的成员,则必须在函数参数之前加上t。 其中,公共类型t可以是普通成员变量的类型。 也可以用作成员函数的参数和返回类型等。

例如:

1 template classt 23 classtest4{5private :6 TN; 7 const T i; 8公共:9 test (: I )0) {}10test ) tk; 11~test(12 ) 13voidprint ); 14t操作器(tx ); 15 }; 如果在类外定义成员函数,并且此成员函数具有模板参数,则除了在普通类外定义成员函数的相同定义外,还必须在函数外声明模板

例如:

1 template class T2 void testt 3360: print (3) 4std 3360: cout ' n=' nstd 33603360 endl; 5 STD : cout ' I=' istd :3360 endl; 6 }1template class T2 testt :3360 test (tk ) :I(k ) { n=k; } 34 template classt 5t testt :操作器(tx ) {6 return n x; 7 }

关于类模板的使用:类模板的使用,实际上是将类模板实例化到具体的类中,形式为类名的实际类型

模板类是模板的实例化产物。 举个具体的例子吧。 试着把模板类比作制作饼干的模具吧。 模板类是用这个模具做的饼干。 这个饼干是什么味道取决于你自己在实例化中使用了什么材料。 你可以做巧克力饼干,也可以做牛奶饼干。 这些饼干只是材料不同,其他的都一样。

转载于:https://www.cn blogs.com/cxq 0017/p/6076856.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。