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 回答