数学建模社区-数学中国
标题:
[教程] c++变量初始化规则
[打印本页]
作者:
建不了的模。
时间:
2014-7-22 10:09
标题:
[教程] c++变量初始化规则
[教程]
c++变量初始化规则
9 y+ {, {6 \# }0 T+ p% s/ ]
在c++中,当定义没有初始化的变量时,系统有时候会帮我们初始化这些变量。这时,系统提供什么样的值取决于变量的类型,也取决于变量定义的位置。
. S+ H' y$ V$ ?8 }7 k1 Z* g
( G2 y& e9 p+ r I$ n1 l3 V
1、内置类型变量的初始化
2 r2 Q0 O4 Y7 l- G
. d* o" L( ?4 w" r+ v2 b u
内置变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化为0,在函数体内定义的内置变量不进行自动初始化。
8 B) _5 Z0 ]+ L/ `9 R
- c3 q2 ^# @1 ?# P, T# K: e4 N: Z
除了用作赋值操作符的左操作数,未初始化的变量用作任何其他用途都是没有定义的,未初始化引起的错误难以发现。
- P" b5 {- N. y a( q2 m1 z
+ l" m) N6 [+ l
2、类类型变量的初始化
; F6 @: y2 I6 {% H3 `7 U' T
( G8 c; N$ L% T2 i7 z
每个类都定义了该类型的对象可以怎样初始。类通过定义一个或多个构造函数来控制类对象的初始化。例如我们知道string类至少提供了两个构造函数,其中一个允许我们通过字符串字面值初始化string对象,另外一个允许通过字符和计数器初始化string对象。
( _+ o( \7 }5 P# B" j
3 ]5 }. h7 O3 j) i* y! R# M
如果某个类的变量时没有提供初始式,这个类也可以定义初始化时的操作数。它通过定义一个特殊的构造函数,即默认构造函数来实现。这个够战术之所以成为默认构造函数,是因为它是“默认运行”的。如果没有提供初始化式,那么就会使用默认构造函数。不管类变量在哪里定义,默认构造函数都会并使用。
% N1 W( S+ v$ \9 r/ ?
2 q, \5 s- @* F6 J
大多数类都提供了默认构造函数。如果类具有默认构造函数,那么就可以在定义该类的变量时不用显示的初始化变量。例如,string类定义默认构造函数来初始化string变量为空字符串,即没有字符的字符串。
* T3 v" p0 K3 M) N' |- J
3 v j# b7 v+ v4 a1 S/ z; _- T# {. L- B
作者:
w785485068
时间:
2014-7-30 20:07
顶一下。。。。。
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5