66 一个空类会默认生成哪些成员
1. 无参的构造函数Empty(){}
2. 拷贝构造函数Empty(constEmpty©){}
3. 赋值运算符Empty&operator= (constEmpty©){}
4. 析构函数(非虚)~Empty(){}这些函数只有在第一次使用它们的时候才会生成,他们都是inline并且public的。如果想禁止生成这些函数,可以将它们定义成private函数,如果有很多类都有这种需求,那么可以定义一个基类,然后让其他类继承这个类
67 构造函数的调用顺序是什么?
1.先调用基类构造函数
2.按声明顺序初始化数据成员
3.最后调用自己的构造函数
68 拷贝构造函数与赋值运算符的区别
1.当类的一个对象去初始化该类的另一个对象时;
2.如果函数的形参是类的对象,调用函数进行形参和实参结合时;
3.如果函数的返回值是类对象,函数调用完成返回时
69拷贝构造函数在哪几种情况下会被调用?
1.当类的一个对象去初始化该类的另一个对象时
2.如果函数的形参是类的对象,调用函数时,形参与实参结合时
3.如果函数的返回值是类的对象,函数执行完成返回调用着时
70什么时候必须重写拷贝构造函数?
类成员变量中有指针时,当构造函数涉及到动态存储分配空间时,要自己写拷贝构造函数,并且要深拷贝