派生类的大小

时间:2014-01-14 19:29:33

标签: c++ class inheritance turbo-c++

class mango
{
    int yellow;
    char leaf[30];
};

class strawberry : public mango 
{
      public:
      int lol;
};

为什么有必要添加黄色和叶子的大小来查找草莓的总大小 - 尽管它们不是遗传的?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

他们当然会继承。他们<{1}} ,但他们仍然是其继承的strawberry的一部分。

mango可以使用strawberry的公共或受保护方法,后者又使用这些成员。