高手看下问题,并解释下为什么???

QIAOXUEBAOQIAO1991 2011-04-11 10:17:02
#include<iostream>
struct complex{
private :
double i;
double r;
public:

void init(double ii,double rr){r=rr,i=ii;}
double real(){return r;}
double image(){return i;}
};
using namespace std;
int main(){
complex a;
a.init(8,3);
cout<<a.real()<<" "<<a.image();
/*cout<<a.real<<" "<<a.image;编译时并没有出错,但是始终输出1 1,为什么?1是从哪来的??*/



return 1;
}
...全文
64 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
danielzhu 2011-04-11
  • 打赏
  • 举报
回复
VC 2008 不支持上述用法。编译错误!

1>c:\cout.cpp(32) : error C3867: 'complex::real': function call missing argument list; use '&complex::real' to create a pointer to member
1>c:\cout.cpp(32) : error C3867: 'complex::image': function call missing argument list; use '&complex::image' to create a pointer to member
hellboy198502 2011-04-11
  • 打赏
  • 举报
回复
输出结束:3 8
luohaohahaha 2011-04-11
  • 打赏
  • 举报
回复
嗯 lz 该怎样,就怎样。有些问题无法解释的,肯定是有什么原因呗,但那估计只有编编译器的人知道了。
反正最好做到一一对应,是real()就是real,不要钻牛角尖,非得说real为什么不行。
無_1024 2011-04-11
  • 打赏
  • 举报
回复
在编一个时候输了一个警告 貌似是类型转换的 应该是转换为bool了吧
無_1024 2011-04-11
  • 打赏
  • 举报
回复
cout<<a.real<<" "<<a.image;没有这样用的 你直接调用函数名作为参数
pengzhixi 2011-04-11
  • 打赏
  • 举报
回复
最大的可能是转型为bool型输出。
hujiey 2011-04-11
  • 打赏
  • 举报
回复

不管有没有错 楼主什么编译器 我的为什么输出的是 3 8
pengzhixi 2011-04-11
  • 打赏
  • 举报
回复
没有这么用的。

64,666

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧