我第一次尝试处理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;
,问题是什么?
答案 0 :(得分:3)
问题是您尝试在编译器期望成员声明的位置执行语句。尝试将其放入方法
class Type : public Kind {
...
void Example() {
Kind root;
root.x = 3;
}
};
答案 1 :(得分:1)
您不能将作业作为课程声明的一部分。请在成员函数中执行此操作。