鱼C论坛

 找回密码
 立即注册
查看: 2850|回复: 4

C++关于类的模板的解读

[复制链接]
发表于 2019-3-23 14:20:23 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Set(T st):t(st){}
这个构造函数应该怎么理解…
尤其是 :后面的这个部分是什么意思。。。
15533219548593446053845619338431.jpg
IMG_20190323_141437.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-23 14:34:09 | 显示全部楼层
委托构造:使用st初始化t
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-23 14:52:14 From FishC Mobile | 显示全部楼层
Croper 发表于 2019-3-23 14:34
委托构造:使用st初始化t

大佬可以详细讲一下吗…
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-23 14:57:47 | 显示全部楼层
委托构造函数的形式
class A{
     A():Foo(){
          //code
     }
}
表示执行构造函数A()之前会先调用Foo(),再执行函数体里的内容
你的例子里执行t(st)就是使用st将t初始化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-25 19:35:48 | 显示全部楼层
本帖最后由 RIXO 于 2019-3-26 18:21 编辑

这个就是个类模板,类模板里面有一个其他类的成员对象(因为不确定是什么类所以用  T  代替)对象名为   t  ,在构造函数里面主动调用  T 类的构造函数构造  t 这个对象。

他就举了两个例子,一个是使用友元函数的运算符重载来实现用 cout 输出年月日,这个是模板特化的时候干的 ,其实他模板特化也就只多了一个  “Date:”,有点炫技的感觉,
还有一个就是用int类型实现的利用模板,那就是在构造函数里面初始化了这个整形变量 t ,然后输出t的值



PS:在VS2017里面模板特化需要在Set<Date>前面加template<>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-3 12:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表