标题:请教static问题
取消只看楼主
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
 问题点数:0 回复次数:3 
请教static问题
#include<iostream.h>
class c
{
public :
void set(int n){num=n;}
int get() const{return num;}
private:
int num;
};
void f(c&);
c& g();
void main()
{
c c1,c2;
f(c1);
c2=g();
cout<<c2.get()<<endl;
}
void f(c &d)
{
d.set(-999);
cout<<d.get()<<endl;
}
c& g()
{
static c c3;
c3.set(123);
return c3;
}
请问下:c& g();这句话是什么意思呢?而且static c c3;
这里非要用static,如果不用就输出错误,是为什么呢?
请教
搜索更多相关主题的帖子: static 
2006-05-30 21:08
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
得分:0 
那我可不可以这么理解,c&amp; g()返回的是c类的引用,如果不把c3设置为全局变量,那么c2=g();此时c2得到的不是对象c3的地址,而是g()这个函数的地址呢?
2006-05-30 22:51
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
得分:0 
或者是这样的:由于返回的是一个地址,但此时c3已经已经没有用了,所以返回的是一个未知的地址给c2
2006-05-30 23:01
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
得分:0 
不好意思,返回的是一个未知对象的地址传给c2
2006-05-31 11:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-68633-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.171478 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved