| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 502 人关注过本帖
标题:友元函数重载出错,求解
只看楼主 加入收藏
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:11 
友元函数重载出错,求解
程序代码:
#include<iostream>
using namespace std;
class space
{
    int x;
    int y;
    int z;
public:
    space()
    {
        x=1;
        y=1;
        z=1;
    }
    friend void operator-(space &s)//编译时提示这儿有错
    {
        s.x=-s.x;
        s.y=-s.y;
        s.z=-s.z;
    }
    void dispaly()
    {
        cout<<x<<y<<z<<endl;
    }
};

int main()
{
    space p;
    -p;
    p.dispaly ();
    return 0;

}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

我是照书上的写的,只想验证下。结果。。。
请各位帮忙解释下!
搜索更多相关主题的帖子: color 
2012-04-16 15:25
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:1 
vs2008  下没什么错
2012-04-16 15:50
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:1 
重载负号  返回值怎么是void
岂不是 不支持 p = -p;
2012-04-16 15:54
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
收藏
得分:0 
回复 3楼 寒风中的细雨
这是可以的,p是一个对象,-p就是调用operator-()函数,即p.operator-();
2012-04-16 16:13
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:1 
自己能不能先运行试试看
2012-04-16 18:09
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 4楼 心手2012
重载成员函数那是
2012-04-16 18:17
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
收藏
得分:0 
回复 6楼 寒风中的细雨
我把
#include<iostrem>
using namespace std;
改成
#include<iostream.h>
就可以了。
这是什么原因 啊?
2012-04-16 18:27
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
可以看看介绍两者的区别的资料  
2012-04-16 19:17
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
收藏
得分:0 
回复 8楼 寒风中的细雨
看了半天,都说这是新标准和旧的区别,还有有时候两种又都可以,可能是编译器的问题。我去问问我们老师吧

[ 本帖最后由 心手2012 于 2012-4-16 19:36 编辑 ]
2012-04-16 19:33
飞扬冲天
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:122
注 册:2011-10-21
收藏
得分:0 
-怎么会是void啊?
2012-04-16 20:13
快速回复:友元函数重载出错,求解
数据加载中...
 
   



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

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