- 在线时间
- 1084 小时
- 最后登录
- 2015-9-10
- 注册时间
- 2014-4-18
- 听众数
- 162
- 收听数
- 1
- 能力
- 10 分
- 体力
- 43980 点
- 威望
- 6 点
- 阅读权限
- 255
- 积分
- 15251
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 3471
- 主题
- 2620
- 精华
- 1
- 分享
- 0
- 好友
- 513
升级   0% TA的每日心情 | 开心 2015-3-12 15:35 |
|---|
签到天数: 207 天 [LV.7]常住居民III
 群组: 第六届国赛赛前冲刺培 群组: 国赛讨论 群组: 2014美赛讨论 群组: 2014研究生数学建模竞 群组: 数学中国试看培训视频 |
[教程] c++变量初始化规则
; ]# y' j# D5 \7 r5 I) b在c++中,当定义没有初始化的变量时,系统有时候会帮我们初始化这些变量。这时,系统提供什么样的值取决于变量的类型,也取决于变量定义的位置。
0 @% v+ N3 ^2 k" `1 P1 z+ \0 F, u$ A, j( h4 l
1、内置类型变量的初始化
7 s4 x5 G5 X: R, g4 }$ ~( k/ D( M; u: _2 m1 h' y# W2 y5 q! g N
内置变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化为0,在函数体内定义的内置变量不进行自动初始化。
. D4 z; }7 C/ S" X/ }
- o& d3 g1 I: u6 Y; ^) |4 w9 [1 a除了用作赋值操作符的左操作数,未初始化的变量用作任何其他用途都是没有定义的,未初始化引起的错误难以发现。/ k- o; S3 Q& L! a- h+ n0 ^
7 j j: z- y6 g% H+ _2 A. F7 c a2、类类型变量的初始化 Y ?5 h. g: G7 S9 f( i1 H
4 I, a- ?: ?) |5 N3 K5 f- n0 o- W! z. W
每个类都定义了该类型的对象可以怎样初始。类通过定义一个或多个构造函数来控制类对象的初始化。例如我们知道string类至少提供了两个构造函数,其中一个允许我们通过字符串字面值初始化string对象,另外一个允许通过字符和计数器初始化string对象。6 a% G0 w& \0 ~" ]% H+ x7 O1 @
( z, R. L+ v5 @6 J, z8 R3 d
如果某个类的变量时没有提供初始式,这个类也可以定义初始化时的操作数。它通过定义一个特殊的构造函数,即默认构造函数来实现。这个够战术之所以成为默认构造函数,是因为它是“默认运行”的。如果没有提供初始化式,那么就会使用默认构造函数。不管类变量在哪里定义,默认构造函数都会并使用。, w3 y2 h$ W! g- E
8 s! C1 W$ t. s. _5 K1 T" l% K
大多数类都提供了默认构造函数。如果类具有默认构造函数,那么就可以在定义该类的变量时不用显示的初始化变量。例如,string类定义默认构造函数来初始化string变量为空字符串,即没有字符的字符串。
9 X c# y5 ?; W1 ]8 F9 L5 W5 P2 t; K- c Z8 W( ?( `" L% j& g
|
zan
|