1. 空类的sizeof值
- 对于无成员函数,无成员变量的空类,其sizeof值为1. 虽然没有成员占内存,但必须在内存中占一定空间,由编译器决定(VS)。
- 在空类中添加函数,其sizeof还是1。因为实例中不储存类函数相关内容,只通过函数地址调用。
- 若有虚函数,则会为类生成虚函数表。在实例中添加指向虚函数表的指针。因此占一个指针的空间。
2. 拷贝构造函数
拷贝构造函数的形参不能是同类对象,要加const &
。
因为在形参传值的过程中,会有复制实例的过程,递归调用拷贝构造函数,这样会发出无限递归,导致栈溢出。
A(A a) {
};
A(const A& a)