| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 890 人关注过本帖
标题:C++中编程如何选择用const 和static
只看楼主 加入收藏
ziguang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-3-22
结帖率:100%
收藏
 问题点数:0 回复次数:5 
C++中编程如何选择用const 和static
C++中编程如何选择用const 和static
搜索更多相关主题的帖子: 选择 static const 
2010-03-24 19:09
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:0 
两个不是一码事!
一个变量按存储方法分为auto static register extern四种。
其中static可以声明局部变量也可以声明全局变量。当声明局部变量时表示局部变量的值在函数调用结束时不消失而保留原值。
const表示只读,被其限定的标量不能改变,但在函数调用结束时消失。
const int a;(称谓常变量)这种写法有点问题。当定义常变量时一定要对标量赋值。

在c++中,static静态成员变量不能在类内部初始化。
在c++中,const常量成员变量也不能在类定义处初始化,只能通过构造函数初始化列表进行,并且必须有构造函数。

const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。所以不能在类声明中初始化const数据成员,因为类的对象未被创建时,编译器不知道const 数据成员的值是什么。
const数据成员的初始化只能在类的构造函数的初始化表中进行。要想建立在整个类中都恒定的常量,应该用类中的枚举常量来实现,或者static const。

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-03-24 19:20
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:0 
目前板块正在选版主,希望你能投我一票!支持我一下,谢谢

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-03-24 19:22
ziguang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-3-22
收藏
得分:0 
回复 2楼 hzh512
我的意思是 设计程序时怎样确定哪些定义为static, 那些定义为const
2010-03-24 21:15
wnq317
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-5-13
收藏
得分:0 
当你定义一个常量的时候用const,如果你学过c的话,const就相当于#define;而static则表示静态变量,它只能在声明它的文件当中可见,不能被其它文件使用。
2010-03-25 15:50
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1485
专家分:9068
注 册:2010-3-16
收藏
得分:0 
如果你不希望在运行中改变一个变量的值,那么让他const。
如果你想在下次进入函数时依然保存一个函数内定义的变量的值,用static。

static声明的变量或函数在程序开始运行时就存在了。
2010-03-25 19:26
快速回复:C++中编程如何选择用const 和static
数据加载中...
 
   



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

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