class Base
{
int i ;
};
class Derived : public Base { } ;
int main()
{
cout << sizeof(Derived);
}
Output :
4
В базовом классе, поскольку я является частным, он не должен наследоваться от производного класса. Следовательно, Базовый класс должен действовать как пустой класс. И размер пустого класса равен 1, тогда почему он отображается как 4?
Derived
класс по-прежнему содержит i
в Base
, это просто не доступно, поэтому размер 4 из-за i
Размер по-прежнему 4, потому что размер Base
4. Допустим, например, что Base
имеет функцию
public:
int getI() {return i;}
тогда вы можете позвонить Derived::getI()
, следовательно, Derived должен включать членов частной базы.
здесь, производный класс определен публично .. означает здесь в определении «: публичная база»
таким образом, производный класс может получить доступ ко всем общедоступным, а также к закрытым членам базового класса. Он сделает все закрытые члены общедоступными в этом производном классе. Таким образом, выходные данные будут равны 4 у.е. вывод 1 ..