(1) 一个空类或者空类对象的大小?
由于对象在内存中必须占有一定的空间,因此,即使类是空的,这个类的对象也要占用一定的空间。VS和G++中空类的大小都是1。
(2) 在空类中添加构造函数和析构函数,这个类对象的大小?
这里要明确的是:一个类对象在内存中包含哪些成员?在C++中,类对象中只有非静态的数据成员和虚表指针(如果有的话)。也就是说,虽然函数好像包含在对象中,但是,经过编译之后,类的函数就会编译成像C语言一样的全局函数,只是通过特定的对象进行调用。因此,在空类中添加函数并不会引起类对象大小的变化。
(3) 复制构造函数
书中给了下面这样的代码:
class A {
private:
int value;
public:
A(int n) { value = n; }
A(A other) { value = other.value; }
void Print() { std::cout << value << std::endl; }
};
int