祥森 发表于 2019-3-23 14:20:23

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

Set(T st):t(st){}
这个构造函数应该怎么理解…
尤其是 :后面的这个部分是什么意思。。。

Croper 发表于 2019-3-23 14:34:09

委托构造:使用st初始化t

祥森 发表于 2019-3-23 14:52:14

Croper 发表于 2019-3-23 14:34
委托构造:使用st初始化t

大佬可以详细讲一下吗…{:10_269:}

Croper 发表于 2019-3-23 14:57:47

委托构造函数的形式
class A{
   A():Foo(){
          //code
   }
}
表示执行构造函数A()之前会先调用Foo(),再执行函数体里的内容
你的例子里执行t(st)就是使用st将t初始化

RIXO 发表于 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<>
页: [1]
查看完整版本: C++关于类的模板的解读