如何实现这样的函数?

wenbaby 2008-03-21 03:19:16
如何实现一个函数能够这样调用函数:
fun()=
而不是这样?
=fun()
...全文
106 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
独孤过儿 2008-03-21
  • 打赏
  • 举报
回复
我记得重载+的时候好像就要这样,因为很可能有这种情况:
cout << (a + b + c);
ryfdizuo 2008-03-21
  • 打赏
  • 举报
回复
类里面可以设置对私有成员的修改的接口什么的...
int& GetRefMem() {return m_iNum;}
很少见的...
wenbaby 2008-03-21
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 fetag 的回复:]
引用 14 楼 wenbaby 的回复:
这样的函数有什么用啊?

不是有什么好处,是有时必须要这样写!
[/Quote]

什么时候必须这样用?能不能举例一下?
独孤过儿 2008-03-21
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wenbaby 的回复:]
这样的函数有什么用啊?
[/Quote]
不是有什么好处,是有时必须要这样写!
wenbaby 2008-03-21
  • 打赏
  • 举报
回复
这样的函数有什么用啊?
独孤过儿 2008-03-21
  • 打赏
  • 举报
回复
还是我那个比较丑陋的代码有效果,o(∩_∩)o...哈哈

虽然不好看,但是满足全部要求,而且还不内存泄露!hiahiahia...
Supper_Jerry 2008-03-21
  • 打赏
  • 举报
回复
你的100分的冲击力实在太大了。看看这么短时间这么多回复。
c/c++版.......
HengStar 2008-03-21
  • 打赏
  • 举报
回复
让函数返回一个对象的引用就行了
Treazy 2008-03-21
  • 打赏
  • 举报
回复
靠,原来是要这个目的!
Supper_Jerry 2008-03-21
  • 打赏
  • 举报
回复
int& fun()
{
int* i = new int;
return *i;
}
void main()
{
fun() = 0;
}
内存泄漏
独孤过儿 2008-03-21
  • 打赏
  • 举报
回复
代码有点丑陋,一时向不出来更完美的了...

#include <iostream>
using namespace std;

int* func(int** p)
{
*p = new int;
return *p;
}

int main()
{
int *ptr;
*func(&ptr) = 10;
cout << *ptr << endl;
delete ptr;
return 0;
}
Supper_Jerry 2008-03-21
  • 打赏
  • 举报
回复
left operand must be l-value
ryfdizuo 2008-03-21
  • 打赏
  • 举报
回复
就是左值操作嘛,利用引用&可以实现...
注意函数返回的变量不能是局部变量,
  • 打赏
  • 举报
回复
.....
返回一个对象就可以
Supper_Jerry 2008-03-21
  • 打赏
  • 举报
回复
恐怕不行吧。
ryfdizuo 2008-03-21
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

int& fun()
{
static int test;
return test;
}

int _tmain(int argc, _TCHAR* argv[])
{
fun()=5;
cout<<fun()<<endl;
return 0;
}
Treazy 2008-03-21
  • 打赏
  • 举报
回复
没明白!
独孤过儿 2008-03-21
  • 打赏
  • 举报
回复
让函数的返回值是一个右值就行了!

64,687

社区成员

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

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