我对这两个班级的班级规模感到困惑。
谁能告诉我为什么这个输出是“ SIZEOF(X)=4; SIZEOF(Y)=8;
或提供一些关于这个问题的有用链接/资源?
任何人都可以帮助我吗?
#include <iostream>
using namespace std;
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
}
};
int main() {
cout << "sizeof(X) = " << sizeof(X) << endl;
cout << "sizeof(Y) = "
<< sizeof(Y) << endl;
Y D;
D.change();
// X function interface comes through:
D.read();
D.permute();
// Redefined functions hide base versions:
D.set(12);
getchar();
} ///:~