首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个简单C++有关问题,关于重载运算符的

2012-03-13 
一个简单C++问题,关于重载运算符的#includeiostreamusing namespace stdclass Complex{public:friend i

一个简单C++问题,关于重载运算符的
#include<iostream> 
using namespace std; 
class Complex{ 
public: 
friend istream& operator>>(istream&,complex&); 
private: 
double real; 
double imag; 
}; 
istream& operator>>(istream& input,Complex& c) 

input>>c.real>>c.imag; 
return input;} 
VC6.0编译通不过,我都是照着书往上输的,为什么啊

[解决办法]
编译啥错误提示?
[解决办法]
除了声明>>运算符时的Complex写成小写的complex,没发现其他错误
[解决办法]

C/C++ code
#include <iostream>  using   namespace   std;  class   Complex{  public:  friend istream& operator>> (istream&,Complex&);  void out()   // Just for debug{  cout<<real<<ends<<imag<<endl;}private:  double   real;  double   imag;  };  istream& operator>> (istream& input,Complex& c)  {  input>> c.real>> c.imag;  return input;}  int main(){  Complex com;  cin>>com;    com.out();      return 0;}//没什么问题啊。不知你的是怎样的,你这样贴后格式都乱了,没从考究。
[解决办法]
把#include <iostream>
 using namespace std; 
改成:
#include <iostream.h> 
试一试


[解决办法]
lz换个编译器吧,VC6对友元支持的非常不好
VC2005,和gcc都行
[解决办法]
vc6.0对标准支持得不好,扔了吧
[解决办法]
VC6能干的事情,VS2005等也都能干,为什么还死抱着VC6呢?:-)
[解决办法]
vc6.0 中类的友元函数必须在 类里面实现
这个问题以前也害我不浅啊

C/C++ code
#include <iostream>   using   namespace   std;   class   Complex{   public:       friend istream & operator>> (istream & input,Complex & c)//必须提供在类里面提供实现    {        input>> c.real>> c.imag;           return   input;    }private:       double   real;       double   imag;   };   int main(){    Complex a;    cin >> a;    return 0;}
[解决办法]
lz换个编译器就可以了,VC6.0的确存在处理友员方面这样的问题

[解决办法]
方法一:
C/C++ code
#include<iostream>using namespace std;class Complex;istream& operator>> (istream&,Complex&);class   Complex{public:    friend istream& operator>> (istream&,Complex&);    void out()    {        cout<<real<<' '<<imag<<endl;    }private:    double   real;    double   imag;};istream& operator>>(std::istream& input,Complex& c)  {      input>>c.real>>c.imag;    return input;}int main(){    Complex c;    cin>>c;    c.out();    return 0;}
[解决办法]
将#include<iostream>
using namespace std;

改为
#include<iostream.h>
就可以了,上次保研上机的时候就遇到到这个问题

[解决办法]
同意12楼,这个问题不知道为什么,VC编译friend重载时就是不可以用
using namespace std;
得用<iostream.h>
除非在声明的同时定义,如果定义在外面就会报错,好像是VC自身的问题

------解决方案--------------------



或者试试这样:

C/C++ code
#include <iostream>   using   namespace   std;   class   Complex{   public:    private:  friend   istream&   operator> > (istream&,Complex&); double   real;   double   imag;   };   istream&   operator> > (istream&   input,Complex&   c)   {   input> > c.real> > c.imag;   return   input;}
[解决办法]
vc6.0对friend的支持很差的呀
[解决办法]
友元函数是能够访问类的私有成员变量的。
friend这个关键字也是为此而诞生的。

所以说是vc6的问题了,换vs2005吧,
[解决办法]
受教了!
[解决办法]
你们平时用什么编译器啊 ?????
[解决办法]
vc2005 
dev

热点排行