c++重载操作符

[复制链接]
查看11 | 回复2 | 2008-12-29 16:24:52 | 显示全部楼层 |阅读模式
#include
class Point
{
private:
int xcoord;
int ycoord;
public:
Point (int a,int b){xcoord =a; ycoord =b;}
void display(){cout<<xcoord<<endl<<ycoord<<endl;}
void operator*(){ ++xcoord; ++ ycoord;}
};
void main()
{
Point obj1(1,2);
//obj1*;
//使 xcoord、ycoord增加1
*obj1;
obj1.display();
//使 xcoord、ycoord增加2
}
operator*定义之后,我怎么知道哪种怎么用,也就是说为什么obj1*错误
而*obj1正确

回复

使用道具 举报

千问 | 2008-12-29 16:24:52 | 显示全部楼层
这个当然要看操作符的结合方向了*是右结合的用法就是*exprexpr就是一个表达式了所以当然是*obj1正确了...
回复

使用道具 举报

千问 | 2008-12-29 16:24:52 | 显示全部楼层
我昏死,指针是用来提领的呀,只能放前面比如 int* p;p = new int;*p = 5; // 难道你可以这样 p* = 5;...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行