标题:重載運算符為友元函數時出錯!!!! 急 在線等
只看楼主
lvyan
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-4-8
 问题点数:0 回复次数:5 
重載運算符為友元函數時出錯!!!! 急 在線等
可以重載為成員函數,但是當我重載為友元函數時就出錯.. 不知道哪們大蝦幫忙解釋一下.
以下是出錯信息:  
   --------------------Configuration: 1 - Win32 Debug--------------------
Compiling...
1.cpp
E:\VC\VC6CN\COMMON\MSDEV98\BIN\1\1.cpp(10) : 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
执行 cl.exe 时出错.

1.exe - 1 error(s), 0 warning(s)


以下是程序:
#include<iostream>
using namespace std;
class Vector1
{  
    int x,y;
public:
    Vector1() {  };
    Vector1(int x1,int y1) { x=x1; y=y1; }
    friend Vector1 operator +(Vector1 v1,Vector1 v2)  //提示這裡有錯..
    {  Vector1 tmp;
      tmp.x=v1.x+v2.x;
      tmp.y=v1.y+v2.y;
      return tmp;
    }
   void disp()
   { cout<<"("<<x<<","<<y<<")"<<endl;
   }
};

void main()
{  Vector1 v1(6,8),v2(3,6),v3;
   v3=v1+v2;
   cout<<"v1+v2=";
   v3.disp();
}
搜索更多相关主题的帖子: 友元 算符 error Technical Support 
2008-05-30 00:22
zzy840208
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-4-16
得分:0 
可以换个编译器
1.比如:DEV-C++;
2.或把#include<iostream>
  改成:#include <iotream.h>,同时把using namespace std删掉,程序中的 cout改为std::cout,而不用std名字空间;
3.vc6.0中同时用std与friend有冲突;
2008-05-30 17:04
zzy840208
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-4-16
得分:0 
错了,
是#include <iostream.h>,而不是#include <iotream.h>
刚打错了
2008-05-30 17:06
p1s
Rank: 4
等 级:贵宾
威 望:10
帖 子:454
专家分:3
注 册:2005-11-4
得分:0 
顶2楼!这2个方法都是有效的。还有一个方法,LZ可以试试看。

VC++6对友元运算符重载的支持存在问题,如要使用名字空间,必须先在类外声明该友元函数。

详细代码可以看一下《易学C++》第十六章的例程,希望对LZ有帮助。
2008-05-30 17:43
zzy840208
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-4-16
得分:0 
呵呵,又学了一招!
刚试了一下,确实是,谢谢!
2008-05-30 21:30
wjcloudy
Rank: 1
来 自:辽宁大连
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-11-6
得分:0 
回复 4# p1s 的帖子
还在吗?
我也做过这个函数,我在函数形参那用的是引用,这样函数能顺利执行
2008-05-31 10:26



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




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

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