CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

请朋友们帮我看看这个C++代码,谢谢!!

楼主stwutong(wsdf)2006-03-03 21:53:41 在 C/C++ / 新手乐园 提问

#include<iostream>  
  using   namespace   std;  
   
  class   Complex  
  {public:  
  Complex(){real=0;imag=0;}  
  Complex(double   r,double   i){real=r;imag=i;}  
  friend   Complex   operator   +   (Complex   &c1,Complex   &c2);  
  void   display();  
  private:  
  double   real;  
  double   imag;  
  };  
   
  Complex   operator   +   (Complex   &c1,Complex   &c2)  
  {   return   Compex(c1.real+c2.real,c1.imag+c2.imag);}  
   
  void   Complex::display()  
  {cout<<"("<<real<<","<<img<<"i)"<<endl;}  
   
  int   main()  
  {  
  Complex   c1(2,4),c2(3,55),c3;  
  c3=c1+c2;  
  cout<<"c1+c2=";c3.display();  
  }  
  我在VC6.0下写的,可编译后,提示,编译器错误!怎么办呢? 问题点数:20、回复次数:17Top

1 楼llf_hust()回复于 2006-03-03 22:01:23 得分 0

#include<iostream.h>  
  class   Complex  
  {  
  public:  
  Complex()  
  {  
  real   =   0;  
  imag   =   0;  
  }  
  Complex(double   r,double   i)  
  {  
  real   =   r;  
  imag   =   i;  
  }  
  friend   Complex   operator   +   (Complex   &c1,Complex   &c2);  
  void   display();  
  private:  
  double   real;  
  double   imag;  
  };  
   
  Complex   operator   +   (Complex   &c1,Complex   &c2)  
  {    
  return   Complex(c1.real+c2.real,c1.imag+c2.imag);  
  }  
   
  void   Complex::display()  
  {  
  cout<<"("<<real<<","<<imag<<"i)"<<endl;  
  }  
   
  int   main()  
  {  
  Complex   c1(2,4),c2(3,55),c3;  
  c3   =   c1   +   c2;  
  cout<<"c1+c2=";  
  c3.display();  
  return   0;  
  }Top

2 楼cunsh(村少)回复于 2006-03-03 22:01:59 得分 0

Complex   operator   +   (Complex   &c1,Complex   &c2)  
  {   return   Compex(c1.real+c2.real,c1.imag+c2.imag);}     //   compex   拼错了.  
   
  void   Complex::display()  
  {cout<<"("<<real<<","<<img<<"i)"<<endl;}     //   img   拼错了.Top

3 楼haiyee(三只眼)回复于 2006-03-03 22:09:58 得分 0

楼上的真强,你可以做白盒测试了,呵呵~~~~Top

4 楼stwutong(wsdf)回复于 2006-03-03 22:21:35 得分 0

谢谢,楼上的兄弟!!  
  我真粗心!  
  Top

5 楼jobs002(Oh! Office)回复于 2006-03-04 09:21:37 得分 0

学习学习....Top

6 楼wqtl_357(Step By Step!)回复于 2006-03-05 19:03:14 得分 0

#include<iostream.h>   //改为旧式头文件,  
  //using   namespace   std;  
   
  class   Complex  
  {  
  public:  
  Complex(){real=0;imag=0;}  
  Complex(double   r,double   i){real=r;imag=i;}  
  friend   Complex   operator   +   (Complex   &c1,Complex   &c2);  
  void   display();  
  private:  
  double   real;  
  double   imag;  
  };  
   
  Complex   operator   +   (Complex   &c1,Complex   &c2)  
  {   return   Complex(c1.real+c2.real,c1.imag+c2.imag);}  
   
  void   Complex::display()  
  {cout<<"("<<real<<","<<imag<<"i)"<<endl;}  
   
  int   main()  
  {  
  Complex   c1(2,4),c2(3,55),c3;  
  c3=c1+c2;  
  cout<<"c1+c2=";c3.display();  
   
  return   0;  
  }Top

7 楼t_jl1979(骑士)回复于 2006-03-05 20:01:08 得分 0

Complex   operator   +   (Complex   &c1,Complex   &c2)  
  {   return   Compex(c1.real+c2.real,c1.imag+c2.imag);}     //   compex   拼错了.  
   
  void   Complex::display()  
  {cout<<"("<<real<<","<<img<<"i)"<<endl;}     //   img   拼错了.  
   
  同意Top

8 楼Cccufo(Ccc)回复于 2006-03-05 20:33:34 得分 0

为什么,头文件的定义,会有区别讷?请问高人解释一下讷~~~~  
  Top

9 楼bohlee(我心澎湃)回复于 2006-03-06 10:10:54 得分 0

不理解楼上的话Top

10 楼zzw820626(偶要分,偶要星星)回复于 2006-03-06 12:50:52 得分 0

呵呵,不明白什么问题Top

11 楼aniude(重返荣耀)回复于 2006-03-06 13:25:05 得分 0

同意2楼Top

12 楼Cccufo(Ccc)回复于 2006-03-07 18:07:57 得分 0

用#include<iostream.h>     和用     #include<iostream>   using   namespace   std      
  两者的区别何在讷?是不是与编译器有关?Top

13 楼MinZI(黑夜彩虹)回复于 2006-03-07 21:36:00 得分 0

#invlude<iostream.h>  
    与  
  #include<iostream>  
    use   namespace   std;  
      是相同的。。Top

14 楼hijxiao(李逍遥)回复于 2006-03-08 09:11:42 得分 0

呵呵,我将你的程序的小错误改了改:  
  #include<iostream>  
  using   namespace   std;  
   
  class   Complex  
  {public:  
  Complex(){real=0;imag=0;}  
  Complex(double   r,double   i){real=r;imag=i;}  
  friend   Complex   operator   +   (Complex   &c1,Complex   &c2);  
  void   display();  
  private:  
  double   real;  
  double   imag;  
  };  
   
  Complex   operator   +   (Complex   &c1,Complex   &c2)  
  {   return   Complex(c1.real+c2.real,c1.imag+c2.imag);}  
   
  void   Complex::display()  
  {cout<<"("<<real<<","<<imag<<")"<<endl;}  
   
  int   main()  
  {  
  Complex   c1(2,4),c2(3,55),c3;  
  c3=c1+c2;  
  cout<<"c1+c2=";  
  c3.display();  
  return   0;  
  }Top

15 楼wqtl_357(Step By Step!)回复于 2006-03-08 10:43:52 得分 0

#include   <iostream.h>是旧式头文件,按理说这里改用新头文件不会出现错误,但是问题恰恰是用新头文件带来的内部编译错误。这可能是个例外吧Top

16 楼ichend(心雅)回复于 2006-03-08 16:16:40 得分 0

同意上楼的观点,基本上那就是error的根本所在.  
  现简单一说<iostream.h>和<iostream>的区别:  
  1.   .h格式的头文件在98年9月份被标准委员会抛弃.(尽管现在还是大行其道)  
  2.   iostream.h只支持窄字符集,iostream则支持窄/宽字符集。  
  3.   iostream组件全部放入namespace   std中,防止了名字污染。  
  这就是为什么再用#include<iostream>时总要加个using   namespace   std;的原因.  
  4.   新标准对iostream作了很多的改动,接口和实现都有了变化。  
   
  少了.h却多了更多的内涵.真是简约而不简单啊:)  
   
                                                                          谢谢  
  Top

17 楼Sprain001(Sprain)回复于 2006-03-15 22:52:01 得分 0

#include   <iostream.h>是旧式头文件。  
  #include   <iostream>是标准的   规范的。Top

相关问题

  • 会c#的朋友,帮我用c#改写一下这几行代码:)
  • C#源代码
  • c++原代码
  • C原代码?
  • C++代码?
  • 求c++代码!
  • 谁能帮我转成C#代码。
  • 谁能帮我转成C#代码。
  • 请问哪位朋友有C++发送SMTP/POP3的源代码?
  • ★★★C代码<<=====>>Delphi代码?★★★

关键词

  • real
  • 文件
  • complex
  • double
  • imag
  • 旧式
  • 头文件
  • iostream
  • operator
  • 错误

得分解答快速导航

  • 帖主:stwutong

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo