1

friend class初めて対応しようと思います。以下のコードを書きました。

class Kind{

private:
    friend class Type;
    int x;

public:
    Kind(){ x=0; }
    void setX(int X) { x =X; }
    int getX() { return x; }

    };

class  Type: public Kind {
    public:
    friend class Kind;
    Type(){ }
    Kind root;
    root.x=3;

};

コンパイラは、私ができないことを教えてくれますroot.x=3;, 何が問題なのですか??

4

2 に答える 2

3

問題は、コンパイラがメンバー宣言を予期している場所でステートメントを実行しようとすることです。メソッドに入れてみる

class Type : public Kind {
  ...
  void Example() {
    Kind root;
    root.x = 3;
  }
};
于 2012-01-11T04:12:37.640 に答える
1

クラス宣言の一部として割り当てを行うことはできません。代わりにメンバー関数で実行してください。

于 2012-01-11T04:12:29.437 に答える