CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

程序错误

楼主yuchen2006(雨晨)2006-02-25 10:29:57 在 C/C++ / 新手乐园 提问

#include<iostream.h>  
   
  class   u  
  {  
  int   k;  
  public:  
  u()  
  {  
  k=0;  
  }  
  u(i   dx)  
  {  
  k=dx.hanshu();  
  }  
  void   show()  
  {  
  cout<<k;  
  }  
  };  
  class   i  
  {  
  int   a;  
  public:  
  i(int   h)  
  {  
              a=h;  
  }  
  int   hanshu()  
  {  
  return   a;  
  }  
   
  };  
  void   main()  
  {  
  i   c(10);  
  u   d;  
  d=c;  
  d.show();  
  }  
   
  这个程序哪里有问题???为什么发生这些问题?? 问题点数:20、回复次数:8Top

1 楼llf_hust()回复于 2006-02-25 11:08:53 得分 5

#include<iostream.h>  
  class   i  
  {  
  int   a;  
  public:  
  i(int   h)  
  {  
              a=h;  
  }  
  int   hanshu()  
  {  
  return   a;  
  }  
   
  };  
  class   u  
  {  
  int   k;  
  public:  
  // friend   class   i;  
  u()  
  {  
  k=0;  
  }  
  u(i   dx)  
  {  
  k=dx.hanshu();  
  }  
  void   show()  
  {  
  cout<<k;  
  }  
  };  
   
  void   main()  
  {  
  i   c(10);  
  u   d;  
  d=c;  
  d.show();  
  }  
  Top

2 楼ugg(逸学堂(exuetang.net))回复于 2006-02-25 13:01:19 得分 5

#include<iostream.h>  
  class   i;//   在u中使用i需要先声明  
  class   u  
  {  
  int   k;  
  public:  
  u()  
  {  
  k=0;  
  }  
  u(i   dx)  
  {  
  k=dx.hanshu();  
  }  
  void   show()  
  {  
  cout<<k;  
  }  
  };  
  class   i  
  {  
  int   a;  
  public:  
  i1(int   h)  
  {  
  a=h;  
  }  
  int   hanshu()  
  {  
  return   a;  
  }  
   
  };  
  void   main()  
  {  
  i   c(10);  
  u   d(c);  
  //d=c;//   没有重载=号  
  d.show();  
  }  
  Top

3 楼zhNKUjw(淡淡的云彩悠悠的游)回复于 2006-02-25 21:46:27 得分 5

class   i;//   在u中使用i需要先声明  
  在类u之前声明i也是不够的,因为类u的定义过程中用到了类i的对象。  
  C++规定,当一个类的对象被使用之前,该类必须被定义。  
  如果是这个类的指针或者引用的话,那么的话声明即可。  
   
  若想使用d=c,需要自己定义赋值运算符"="Top

4 楼ugg(逸学堂(exuetang.net))回复于 2006-02-25 22:56:17 得分 0

哦。学习了。  
  在VC7.1中,如果两个类定义在一个文件中。  
  class   BB;  
   
  class   AA  
  {  
  int   ii;  
  public:  
  AA()  
  {  
  };  
  void   fun(BB   &   b)//   这里是*,&对象都不对,必然把类BB放到AA前面  
  //   不然d:\project\test5\test5.cpp(22):   error   C2027:   使用了未定义类型“BB”  
  d:\project\test5\test5.cpp(22):   error   C2228:   “.data”的左侧必须有类/结构/联合类型  
   
  {  
  ii   =   b.data;  
  }  
  };  
   
  class   BB  
  {  
  public:  
  int   data;  
  };Top

5 楼snowbirdfly(专心搞好嵌入式~~~)回复于 2006-02-25 23:03:04 得分 5

楼主的程序编写class   u时,里面公有函数里面的  
  u(i   dx)  
  {  
  k=dx.hanshu();  
  }  
  没有首先声明类i~  
  所以编译器不可能知道i是什么东西或者是什么类型~~~  
  所以会出错~~~Top

6 楼yuchen2006(雨晨)回复于 2006-02-26 14:12:23 得分 0

ugg   我按照你的程序编译了一下,还是有错误,这是什么原因??  
   
   
  class   i;//   在u中使用i需要先声明  
  在类u之前声明i也是不够的       ???那应该如何做,能把程序帮我改一下吗???  
  若想使用d=c,需要自己定义赋值运算符"="       //我用的构造函数来解决d=c的问题可以把?  
   
  帮我改一下程序  
  Top

7 楼yuchen2006(雨晨)回复于 2006-02-26 15:50:04 得分 0

明白了,应该类内定义转换构造,类外去写Top

8 楼ckp(surge)回复于 2006-02-26 15:55:10 得分 0

那么多代码,头晕了。Top

相关问题

  • 程序错误
  • 程序错误
  • explorer.exe-应用程序错误
  • 程序保护错误?
  • 程序运行错误
  • 应用程序错误
  • java程序运行错误
  • 程序运行的错误?????????????
  • 奇怪的程序错误
  • 程序嵌套错误

关键词

  • hanshu
  • dx
  • cout
  • void show

得分解答快速导航

  • 帖主:yuchen2006
  • llf_hust
  • ugg
  • zhNKUjw
  • snowbirdfly

相关链接

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

广告也精彩

反馈

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