摘要: 模板进阶内容,主要模板重载、参数包、模板特例化 阅读全文
posted @ 2016-08-25 21:32 潇少爷 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 一、类型转换与模板类型参数 1、如果一个函数形参的类型使用了模板类型参数,那么它采用特殊的初始化规则。只有很有限的几种类型转换会自动地应用于这些实参。 ①、顶层const无论是在形参中还是在实参中,都会被忽略。 ②、const转换:可以将一个非const对象的引用(或指针)传递给一个const的引用 阅读全文
posted @ 2016-08-24 11:28 潇少爷 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 一、在下列情况下,必须使用member initialization list: 1、当初始化一个reference时; 2、当初始化一个const member时; 3、当调用一个base class的constructor,而它拥有一组参数时; 4、当调用一个member class 的cons 阅读全文
posted @ 2016-08-23 15:04 潇少爷 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 一、 1、显示的初始化操作: 会被转换成如下步骤(双阶段转化): 1 void foo_bar() 2 { 3 X x1; 4 X x2; 5 X x3; 6 7 x1.X::X(x1); 8 x2.X::X(x2); 9 x3.X::X(x3); 10 } 2、参数(形参)的初始化: 另一种方法是 阅读全文
posted @ 2016-08-23 10:49 潇少爷 阅读(216) 评论(0) 推荐(1) 编辑
摘要: 一、 1、当我们调用一个函数模板时,编译器用函数实参来为我们推断模板实参。 2、模板实参的作用:指定返回类型或函数的参数类型,以及在函数体内用于变量的声明或类型转换。 3、除了定义类型参数,还可以在模板中定义非类型参数,一个非类型参数表示一个值而非一个类型。 二、 1、与函数模板不同的是,编译器不能 阅读全文
posted @ 2016-08-22 14:55 潇少爷 阅读(199) 评论(0) 推荐(0) 编辑