Размер производного класса
class mango
{
int yellow;
char leaf[30];
};
class strawberry : public mango
{
public:
int lol;
};
Почему необходимо добавить размер желтого и лист, чтобы найти общий размер клубники, даже если они не наследуются?
2 ответа
Почему необходимо добавить размер желтого и лист, чтобы найти общий размер клубники, даже если они не наследуются?
Они наследуются, и я могу это доказать:
class mango
{
int yellow;
char leaf[30];
public:
int getYellow() { return yellow; }
mango() : yellow(42) {}
};
class strawberry : public mango
{
public:
int lol;
public:
int doIt() { return getYellow(); }
};
#include <iostream>
int main()
{
strawberry s;
std::cout << s.doIt();
};
Выход:
42
Конечно, они унаследованы. Они не видны strawberry
, но они все еще являются частью mango
от которого он наследует.
strawberry
может использовать публичные или защищенные методы mango
которые в свою очередь использовали эти члены.