我有这段代码:
class A {
private:
int player;
public:
A(int initPlayer = 0);
A(const A&);
A& operator=(const A&);
~A();
void foo() const;
friend A& operator=(A& i, const A& member);
};
A& operator=(A& i, const A& member){
i(member.player);
return i;
}
我的代码中有一行:
i = *pa1;
A * pa1 = new A(a2); 在开头我是int
我怎么能解决它,提前谢谢
我有一个错误must be non-static function
答案 0 :(得分:5)
类的赋值运算符必须是成员函数,而不是朋友。
A& operator=( const A& member){
this->player = member.player);
return *this;
}
如果要将A类对象转换为整数,请提供命名转换函数,例如ToInt()。
与所有问题一样,通过阅读C ++教科书可以很容易地解决这个问题。这是我将要回答的最后一个问题。