爲什麼在下面的代碼中是sizeof(X) == 4
和sizeof(Y) == 8
?基類,繼承類sizeof()
此外,在類X
,爲什麼成員函數不佔用任何內存空間?
class X {
int i;
public:
X() { i = 0; }
void set(int ii) { i = ii; }
int read() const { return i; }
int permute() { return i = i * 47; }
};
class Y : public X {
int i; // Different from X's i
public:
Y() { i = 0; }
int change() {
i = permute(); // Different name call
return i;
}
void set(int ii) {
i = ii;
X::set(ii); // Same-name function call
}
};
cout << "sizeof(X) = " << sizeof(X) << endl;
cout << "sizeof(Y) = " << sizeof(Y) << endl;
我從一本書的代碼複製。 :)現在我明白了。但如何使用這兩個差異我不是很清楚。 – user1279988 2012-03-27 05:27:40
添加到我的答案。希望能幫助到你。 – 2012-03-27 05:28:55
我看到了codeepad中的代碼。謝謝你的回答! – user1279988 2012-03-27 05:32:15