高手来看一下。

yifanwu 2005-03-03 08:45:25
下面代码中的 X f5() 怎么理解?


#include <iostream.h>

class X {
int i;
public:
X(int ii = 0);
~X();
void modify();
void print(char* s) {cout<<s<<i<<endl;}
};

X::X(int ii) { i = ii; print("Initialize ");}
X::~X() {print("Destory");}
void X::modify() { i++; print("Modify ");}

X f5() {
return X();
}
const X f6() {
return X();
}
void f7(X& x) { // Pass by non-const reference
x.modify();
}
void main() {
f5() = X(1); // OK -- non-const return value
f5().modify(); // OK
// Causes compile-time errors:
//! f7(f5());
//! f6() = X(1);
//! f6().modify();
//! f7(f6());
} ///:~
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yifanwu 2005-03-03
  • 打赏
  • 举报
回复
哦,谢谢各位,一时脑失临了!
kobefly 2005-03-03
  • 打赏
  • 举报
回复
就像

int func(int)
{
}
的int使用一样
kobefly 2005-03-03
  • 打赏
  • 举报
回复
返回值类型而已
pcboyxhy 2005-03-03
  • 打赏
  • 举报
回复
X f5() { } //定义返回值类型是X的函数,函数名是 f5

64,654

社区成员

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

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