Размер производного класса

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 которые в свою очередь использовали эти члены.

Другие вопросы по тегам