| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 530 人关注过本帖
标题:请教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
快速回复:请教static问题
数据加载中...
 
   



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

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