| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 804 人关注过本帖
标题:帮忙看看问题出在哪里 关于运算符重载
只看楼主 加入收藏
lindayanglong
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2008-3-9
收藏
 问题点数:0 回复次数:7 
帮忙看看问题出在哪里 关于运算符重载
#include<iostream>
using namespace std;
class Point
{
    int x,y;
public:
    void set(int a,int b)
    {
        x=a;y=b;
    }
    void print() const
    {
        cout<<"x="<<x<<' '<<"y="<<y<<endl;
    }
    friend  Point operator+(const Point& a,const Point& b);
    friend   Point add(const Point& a, const Point& b);

};
  Point add(const Point& a, const Point& b)
{
    Point s;
    s.set(a.x+b.x,a.y+b.y);
    return s;
}
 Point operator +(const Point& a,const Point& b)
{
    Point s;
    s.set(a.x+b.x,a.y+b.y);
    return s;
}
int main()
{
    Point a,b;
    a.set(3,2);
    b.set(1,5);
    (a+b).print();
    operator+(a,b).print();
    add(a,b).print();

}
搜索更多相关主题的帖子: 运算符 重载 
2008-09-02 15:11
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我运行了下,结果没什么问题,但是涉及返回局部变量问题

学习需要安静。。海盗要重新来过。。
2008-09-02 15:35
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
operator+(a,b).print();一般也不这样用吧

学习需要安静。。海盗要重新来过。。
2008-09-02 15:36
lindayanglong
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2008-3-9
收藏
得分:0 
我怎么会出现这样的运行错误啊?
Compiling...
a3.cpp
E:\vc++实验\a3\a3.cpp(15) : fatal error C1001: INTERNAL COMPILER ERROR
        (compiler file 'msc1.cpp', line 1786)
         Please choose the Technical Support command on the Visual C++
         Help menu, or open the Technical Support help file for more information
Error executing cl.exe.

a3.obj - 1 error(s), 0 warning(s)
2008-09-02 18:21
zzt_428
Rank: 2
来 自:南京师范大学
等 级:论坛游民
威 望:2
帖 子:243
专家分:22
注 册:2008-7-6
收藏
得分:0 
回复
返回局部对象是可以的,,只不过返回局部对象的指针或引用是不可以的.
2008-09-02 21:22
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
可以分析下你的观点吗?

学习需要安静。。海盗要重新来过。。
2008-09-02 22:39
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
用vs2005没什么问题,我说错了一点,就是上面返回局部变量其实是涉及拷贝问题。。。如果数据过大,会浪费时间

[[it] 本帖最后由 sunkaidong 于 2008-9-2 22:51 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-09-02 22:43
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
这里没有涉及返回引用的问题,这个主要是你用的编译器不支持友元造成的.换个编译器吧,估计楼主用的VC 6.0,用VS2005,VS2008,DEV_C++都行,推荐后两个

雁无留踪之意,水无取影之心
2008-09-02 22:59
快速回复:帮忙看看问题出在哪里 关于运算符重载
数据加载中...
 
   



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

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