operator操作时为何会出现此错误
本人自定义了一个类:
class Point : public CFile
{
public:
float x;
public:
Point();
~Point();
Point( const Point& point );
Point& operator = (Point& pt1, Point& pt2);
};
Point::Point()
{
x = 0;
}
Point::~Point()
{
}
Point::Point( const Point& point )
{
x = point.x;
}
Point& Point::operator= (Point& pt1, Point& pt2)
{
pt1.x = pt2.x;
}
在编译时出现此错误:二进制“operator =”的参数太多
当我将类中的operator=操作改成friend时,编译显示operator=不能用于静态成员
请问:这应该怎么解决?
问题点数:20、回复次数:7Top
1 楼zengwujun(月之海 为linux入门奋斗100天)回复于 2005-04-02 18:06:31 得分 20
Point& operator = (Point& rhs)
{
x=rhs.x;
return *this;
}
Top
2 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-04-02 18:07:01 得分 0
用成员函数:Point& operator = (Point& pt);
当是成员函数是,已经有一个参数this是赋值左边的数了Top
3 楼tip9914(尖尖)回复于 2005-04-02 18:13:36 得分 0
Point& operator = (Point& rhs)
{
x=rhs.x;
return *this;
}
或者
friend Point& Point::operator= (Point& pt1, Point& pt2)
{
pt1.x = pt2.x;
return pr1;
}
Top
4 楼xjp6688(大平/要做必须最好)回复于 2005-04-02 18:37:53 得分 0
应该解决了吧Top
5 楼structme(带着放大镜看文章,噢靠!怎么这牛啊!)回复于 2005-04-02 18:43:27 得分 0
2楼说的对,需要有静态的指针Top
6 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-02 18:59:57 得分 0
成员函数有一个this自身的
Top
7 楼greenteanet(扎扎实实打基础,保持一颗平常心。)回复于 2005-04-02 19:01:35 得分 0
一个参数就行了,另外一个用this指针返回Top




