在线时间 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++变量初始化规则
) y3 l) B3 z3 S# k 在c++中,当定义没有初始化的变量时,系统有时候会帮我们初始化这些变量。这时,系统提供什么样的值取决于变量的类型,也取决于变量定义的位置。 . L* W+ r' i1 E& c: b
8 C" ~& d& R: J. d
1、内置类型变量的初始化 4 i7 i9 n o, j3 c
4 j7 F# h9 l5 H" O 内置变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化为0,在函数体内定义的内置变量不进行自动初始化。 . Y i4 r3 e) G& |
. S/ A$ F( Y0 k( C% @
除了用作赋值操作符的左操作数,未初始化的变量用作任何其他用途都是没有定义的,未初始化引起的错误难以发现。 / C' l! L9 l3 }7 C2 I1 s& i% U) r
$ U' M' n% M8 C; @, V. Q; U 2、类类型变量的初始化 - h& H( y) t9 K9 K. m S
# L, a0 T" M3 Z. d! c 每个类都定义了该类型的对象可以怎样初始。类通过定义一个或多个构造函数来控制类对象的初始化。例如我们知道string类至少提供了两个构造函数,其中一个允许我们通过字符串字面值初始化string对象,另外一个允许通过字符和计数器初始化string对象。
; d2 l8 P) I8 y3 B/ \& X4 Q . n j; K6 u5 Z R/ P8 b
如果某个类的变量时没有提供初始式,这个类也可以定义初始化时的操作数。它通过定义一个特殊的构造函数,即默认构造函数来实现。这个够战术之所以成为默认构造函数,是因为它是“默认运行”的。如果没有提供初始化式,那么就会使用默认构造函数。不管类变量在哪里定义,默认构造函数都会并使用。 ( L" S* Q0 n7 X" t7 s& _# Q c
( W. s2 w: q8 _$ \/ `. @, t
大多数类都提供了默认构造函数。如果类具有默认构造函数,那么就可以在定义该类的变量时不用显示的初始化变量。例如,string类定义默认构造函数来初始化string变量为空字符串,即没有字符的字符串。
% Z- h1 n0 B3 p) h4 [+ S/ r$ g) U. r
7 |, e4 j4 P& P
zan