成员变量的初始化

来源:互联网 发布:java生成0到1的随机数 编辑:程序博客网 时间:2024/05/18 00:30

在类中的私有成员因为是受保护的,不能对其直接初始化。

对成员变量初始化有许多种方式,一个是在函数体中进行初始化。比如

class Text

{

public:

          Text( int i , int j , int k ){ a = i ; b = j ; c = k; }

private:

          int a ; int b ; int c ;

};

通过构造函数Text( int i , int j , int k )对私有成员变量啊a,b,c初始化。

还有另一种方法是在函数头中初始化:

构造函数括号后加冒号,再私有初始化。如

class Text

{

public:

          Text(){     }

          Text( int i , int j , int k ):a(i) , b(j) , c(k){        }

           ~Text(){       }

private:

          int a ; int b ; int c ;

};

通过以上方式也可以进行私有成员初始化,在调用带参数的构造函数Text( int i , int j , int k )时,系统会将i赋值给a对象,j赋值给b对象,k赋值给c对象。

第一种实际是对成员的赋值,系统先对其初始化,然后通过函数体进行赋值,并非是真的初始化。

第二种方法才是真正意义上的初始化,是对私有成员的直接初始化。

在对常量const型或引用初始化时,方法一行不通,方法二可行。

class Text

{

public:

          const Text( int i , int j , int k ){ a = i ; b = j ; c = k; }

private:

          int a ; int b ; int c ;

};

上面是行不通的。

原创粉丝点击