C ++访问基类成员

时间:2012-10-20 20:08:19

标签: c++ inheritance

我试图澄清继承如何用于作业。

class AA
{
public:
  setAAA();
protected:
  int AAA;
};

class BB : public AA
{
public:
  setBBB();
private:
  int BBB;
};

BB的AA继承是否导致BB拥有以下成员列表?   - AAA   - BBB   - setAAA()   - setBBB()

如果它成功的原因我不能执行:

BB Frank;
Frank.setAAA();

2 个答案:

答案 0 :(得分:4)

它确实意味着它确实有效。在此处运行代码以进行确认:

http://liveworkspace.org/code/51fd6850ebfb5f86dc61c6dc074fe30a

#include <iostream>

class AA
{
public:
  void setAAA() { std::cout << "Setting AAA" << std::endl; };
protected:
  int AAA;
};

class BB : public AA
{
public:
  void setBBB() {};
private:
  int BBB;
};

int main(int argc, char* argv[])
{
   BB b;
   b.setAAA();

   return 0;
}

你的问题是你的方法没有返回类型:)

答案 1 :(得分:3)

  

如果这样做我为什么不能表演:BB Frank; Frank.setAAA();

好。首先定义返回类型setAAA()。例如,将其设为void

然后可以访问成员函数。