数学建模社区-数学中国

标题: [教程] c++变量初始化规则 [打印本页]

作者: 建不了的模。    时间: 2014-7-22 10:09
标题: [教程] c++变量初始化规则
[教程] c++变量初始化规则, R: O+ @1 M' U5 t
在c++中,当定义没有初始化的变量时,系统有时候会帮我们初始化这些变量。这时,系统提供什么样的值取决于变量的类型,也取决于变量定义的位置。) \3 x! {, ^6 I6 ^- a3 h" g

$ Y) w4 |# h7 W' t% P1、内置类型变量的初始化8 x& N2 @" ?  k. G+ q. n6 Q/ o

% _2 u; X% Z3 \! ]* ?9 `1 v, ?5 j0 n内置变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化为0,在函数体内定义的内置变量不进行自动初始化。
- g- H3 B; [7 M2 U, V( N: [4 n( C1 e* c6 x3 d0 {7 [' T
除了用作赋值操作符的左操作数,未初始化的变量用作任何其他用途都是没有定义的,未初始化引起的错误难以发现。
: x& [6 a- \/ m# L) d* F2 m6 H# g( q
' P5 t5 P/ V8 U6 k  Z2、类类型变量的初始化
% i& p. p* g; V9 V0 t
, K" f3 V" j5 Q( g5 U1 N& w每个类都定义了该类型的对象可以怎样初始。类通过定义一个或多个构造函数来控制类对象的初始化。例如我们知道string类至少提供了两个构造函数,其中一个允许我们通过字符串字面值初始化string对象,另外一个允许通过字符和计数器初始化string对象。) t/ c9 a( o; [8 n( l" o
8 }9 X/ s& }- i/ [
如果某个类的变量时没有提供初始式,这个类也可以定义初始化时的操作数。它通过定义一个特殊的构造函数,即默认构造函数来实现。这个够战术之所以成为默认构造函数,是因为它是“默认运行”的。如果没有提供初始化式,那么就会使用默认构造函数。不管类变量在哪里定义,默认构造函数都会并使用。2 t/ b- h6 c3 P1 J0 y  H
6 G( f4 f& p, \3 C0 Z0 b
大多数类都提供了默认构造函数。如果类具有默认构造函数,那么就可以在定义该类的变量时不用显示的初始化变量。例如,string类定义默认构造函数来初始化string变量为空字符串,即没有字符的字符串。
, _/ Q  q% D: R5 g. H  I! D
7 \% M0 j! |# G/ [. c1 O. W$ E: @
作者: w785485068    时间: 2014-7-30 20:07
顶一下。。。。。




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5