struct构造函数

   声明一个变量,如果没有赋值就使用(编译器会给其一个对应类型的默认值,但这不是赋值),那么就会出错,通常情况下编译器可以帮助发现问题(使用未赋值的变量编译通不过)。

   构造函数是用来初始化类、结构成员变量的。除了要初始化声明的成员变量,还需要考虑初始化的时机。如下面这个:

    1     public struct MyDataContractedBlock.gifCode

 2      {
 3           string  m_name;
 4           int  m_age;
 5 
 6           public  MyData( string  name , int  age, bool  flag) { 
 7               if  (flag) {
 8                  proccess();
 9              }
10              m_name  =   string .Empty;
11              m_age  =   0 ;
12          }
13 
14           void  proccess() {
15                  m_age +=   1 ;  
16          }
17           //  code ecli.
18           //  
19      }

   这个是编译通不过的。需要将所有的成员变量初始化放在最前面。这么更改就可以了:

 1       public   struct  MyData
 2      {
 3           string  m_name;
 4           int  m_age;
 5 
 6           public  MyData( string  name , int  age, bool  flag) { 
 7               m_name  =   string .Empty;
 8               m_age  =   0 ;
 9                if  (flag) {
10                  proccess();
11               }
12             
13          }
14 
15           void  proccess() {
16                  m_age +=   1 ;  
17          }
18           //  code ecli.
19           //  
20     }                                                                                                               举这个例子只是为了说明在初始成员变量的时候要考虑时机。struct声明的时候是不可以进行赋值操作的,在类中可以。所有的成员变量未被赋值之前,操作成员函数也就不允许。

 

转载于:https://www.cnblogs.com/huankfy/articles/1321061.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值