1. 类中嵌套结构或类声明
在类声明中声明的结构、类或者枚举被称为嵌套在类中,其作用域为整个类。这种声明不会创建数据对象,而只是声明了可以在类中声明的数据类型。
class Quene
{
private:
struct Node { int item; struct Node * next; };
enum { Q_SIZE = 10};
Node * front;
Node * rear;
int items;
const int qsize;
public:
};
2. 类的成员初始化列表
- 这种格式只能用于构造函数
- 必须用这种格式初始化const数据成员(因为只能在创建时初始化)
- 必须用这种格式初始化引用数据成员(因为只能在创建时初始化)
- 数据初始化的顺序与它们出现在类声明中的顺序相同,与初始化器中的排列顺序无关
Quene::Quene(int qs):qsize(qs),front(NULL),rear(NULL),items(0)
{
}
3. 类成员的类内初始化
可以调用成员的初始化列表覆盖这些默认值。
class MyClass
{
int mem1 = 10;
const int mem2 = 20;
};
4. 避免复制构造函数和执行深度复制的 赋值运算符被调用的方法
定义为私有方法
class Queue {
private:
Queue(const Queue& q):qsize(0){}
Queue & operator=(const Queue& q) { return *this; }
};