C ++中的转换

时间:2010-06-15 08:27:37

标签: c++

我有这段代码:

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

1 个答案:

答案 0 :(得分:5)

类的赋值运算符必须是成员函数,而不是朋友。

A& operator=( const A& member){   
    this->player = member.player);
    return *this;
}

如果要将A类对象转换为整数,请提供命名转换函数,例如ToInt()。

与所有问题一样,通过阅读C ++教科书可以很容易地解决这个问题。这是我将要回答的最后一个问题。