| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1001 人关注过本帖
标题:操作符重载的问题
取消只看楼主 加入收藏
air8712
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-3-7
收藏
 问题点数:0 回复次数:3 
操作符重载的问题

#include <iostream>
using namespace std;

class Point {
int x, y;
public:
void set (int a, int b) { x = a; y = b; }
Point operator+ (const Point& d) {
Point s;
s.set (x + d.x, y +d.x);
return s;
}
friend ostream& operator << (ostream& o, const Point& d);
};

inline ostream& operator << (ostream& o, const Point& d) {
return o << "(" << d.x << ", " d.y << ")\n";
}

int main()
{
Point s, t;
s.set (2, 5);
t.set (3, 1);
cout << s+t;

return 0;
}


VC下编译
C:\Documents and Settings\Administrator\桌面\b.cpp(17) : error C2248: 'x' : cannot access private member declared in class 'Point'
C:\Documents and Settings\Administrator\桌面\b.cpp(5) : see declaration of 'x'
C:\Documents and Settings\Administrator\桌面\b.cpp(17) : error C2146: syntax error : missing ';' before identifier 'd'
C:\Documents and Settings\Administrator\桌面\b.cpp(17) : error C2248: 'y' : cannot access private member declared in class 'Point'
C:\Documents and Settings\Administrator\桌面\b.cpp(5) : see declaration of 'y'
C:\Documents and Settings\Administrator\桌面\b.cpp(17) : error C2297: '<<' : illegal, right operand has type 'char [3]'
C:\Documents and Settings\Administrator\桌面\b.cpp(25) : error C2593: 'operator <<' is ambiguous
Error executing cl.exe.

b.obj - 5 error(s), 0 warning(s)

请问该怎么改

搜索更多相关主题的帖子: 操作符 重载 
2006-03-23 13:40
air8712
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-3-7
收藏
得分:0 
自己顶`~
2006-03-26 16:59
air8712
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-3-7
收藏
得分:0 
public:
int x;
int y;

这样就把数据改为共有了。。。
2006-03-27 10:24
air8712
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-3-7
收藏
得分:0 

明白了
虽然return o << "(" << d.x << ", " << d.y << ")\n";//少了<<
这里有问题

不过关键还是“据说vc6.0都有这个问题,好像有补丁解决了。上网搜一下,很多相关资料。我用borlanC++,不存在着中编译错误。”

我用DEV试了一下,OK,果然是VC6.0的问题。。。


多谢柳儿~~

2006-03-27 17:26
快速回复:操作符重载的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023820 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved