函数模板:template
template 返回值类型 函数名(参数列表){}
类模板:template
class 类模板名 { // 类内成员定义 };
4)、6)、7)正确
3)T2要么是class要么是typename
构造、析构的顺序
未进行匹配使用,应使用delete[];因为delete所以只会析构一次
bc
每个成员变量在初始化列表中只能出现一次(初始化只能一次),构造函数体中的只是赋值
只能对非静态成员变量初始化(类外初始化,不属于某个类是共有的)
类中以下成员必须在初始化列表初始化:
引用成员变量
const
成员变量
自定义类型成员变量(没有默认(无参)构造参数)
尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表初始化。(内置类型用随机值初始化,自定义类型调用默认构造函数)
成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关
成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关
如果将运算符重载成类的成员函数,其形参个数要比实际参数个数少1
因为成员函数具有隐藏的this
指针作为第一个参数
explicit
修饰构造函数,将会禁止单参构造函数的隐式转换。)在 C/C++中 static 关键字详解_-YIN的博客-CSDN博客_c++的static关键字
A const修饰的成员变量可以
const
修饰如果将运算符重载成类的成员函数,其形参个数要比实际参数个数少1,因为成员函数具有隐藏的this
指针作为第一个参数
而如果重载成类的友元函数,其必须要有一个参数是类类型的对象
常量具有宏替换特性,编译时编译器会替换(a替换为10),通过地址解引用改变后*p 20