标题:友元函数重载出错,求解
取消只看楼主
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
结帖率:100%
已结贴  问题点数:5 回复次数:4 
友元函数重载出错,求解
程序代码:
#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
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
得分:0 
回复 3楼 寒风中的细雨
这是可以的,p是一个对象,-p就是调用operator-()函数,即p.operator-();
2012-04-16 16:13
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
得分:0 
回复 6楼 寒风中的细雨
我把
#include<iostrem>
using namespace std;
改成
#include<iostream.h>
就可以了。
这是什么原因 啊?
2012-04-16 18:27
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
得分:0 
回复 8楼 寒风中的细雨
看了半天,都说这是新标准和旧的区别,还有有时候两种又都可以,可能是编译器的问题。我去问问我们老师吧

[ 本帖最后由 心手2012 于 2012-4-16 19:36 编辑 ]
2012-04-16 19:33
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
得分:0 
是编译器的问题,设置下就好了的。谢谢各位
2012-04-17 16:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-365931-1-1.html




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

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