-1

宿題の継承がどのように機能するかを明らかにしようとしています。

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();
4

2 に答える 2

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;
}

あなたの問題はあなたのメソッドがリターンタイプを持っていなかったことです:)

于 2012-10-20T20:11:48.497 に答える
3

もしそうなら、なぜ私は実行できないのですか:BBフランク; Frank.setAAA();

上手。のリターンタイプを定義することから始めsetAAA()ます。たとえば、それを作成しvoidます。

その後、メンバー関数にアクセスできるようになります。

于 2012-10-20T20:12:08.853 に答える