Почему в следующем коде 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;
Я копирую из кода книги. :)Теперь я знаю. но не очень ясно, как использовать эти два diff i. – user1279988
Добавлен в мой ответ. Надеюсь, поможет. –
Я видел код в кодексе. спасибо за ур ответ! – user1279988