CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

编译结果为什么不同?

楼主dsx()2000-10-16 10:28:00 在 VC/MFC / 基础类 提问

student.h中定义了virtual   void   display(ostream&   out);  
   
  student.cpp中:  
   
  #include"student.h"  
  void   Student::display(ostream&   out)  
  {  
  out<<setiosflags(ios::left)<<setw(20)<<pName  
  <<uID<<","  
  <<setiosflags(ios::right)<<setw(4)<<grade;  
  }  
  ostream&   operator<<(ostream&   out,   Student&st)  
  {  
  st.display(out);  
  out<<endl;  
  return   out;  
  }  
   
   
  在my.cpp中,student.cpp中的函数体放在student.h时编译能得出正确的结果,而分开时,编译提示插入符右边的数不匹配。my.cpp中已有#include"student.h". 问题点数:100、回复次数:6Top

1 楼Kerrie()回复于 2000-10-16 10:34:00 得分 0

如果是在mfc的工程里添加的这两个文件,在student.cpp中添加#include   "stdafx.h"然后试一下Top

2 楼CoolHg(苦听)回复于 2000-10-16 12:27:00 得分 50

我想你应该在*.h文件中定义一下ostream&   operator<<(ostream&   out,   Student&st)的原型,最好在类中把它声明为友元,这样它就可以访问类的所有成员Top

3 楼dsx()回复于 2000-10-24 08:35:00 得分 0

kerrie的方法我试过不行,请问coolHg   ostream&   operator<<(ostream&   out,   Student&st)的原型是什么?Top

4 楼leer(白痴)回复于 2000-10-24 13:16:00 得分 50

在class   Student{};中加入friend   ostream&   operator<<(ostream&   out,   Student&st);  
   
  既:  
    class   Student{  
              //...  
              friend   ostream&   operator<<(ostream&   out,   Student&st);  
              }  
  就行了。  
  Top

5 楼dsx()回复于 2000-10-26 10:53:00 得分 0

谢谢leer的详尽回复,编译已通过。Top

相关问题

  • 从来未有事,竟出大清早:为什么编译运行与调试运行的结果不同!
  • 两个编译器的不同结果
  • 为什么编译前后结果会变化???????????
  • 这个程序运行结果与编译方式有关,为什么?
  • 编译为什么慢?
  • 为什么编译错误?
  • 为什么不能编译?
  • 为什么会有不同的结果????
  • 相同的程序在不同的编译环境下有所不同,为什么?100分
  • 同志们,把下面这段简单程序放到你们的编译器中编译一下吧,为什么会得出莫名奇妙的结果?

关键词

  • student
  • ostream
  • display

得分解答快速导航

  • 帖主:dsx
  • CoolHg
  • leer

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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