C++类成员初始化

来源:互联网 发布:手机坏了怎么导出数据 编辑:程序博客网 时间:2024/05/09 20:45
 

经常碰到这类问题,以前也记录过,不过都留在原公司拿不出来,现在再记录一些基本的知识,以备不时之需。

c++各种不同类型成员初始化总结,可以初始化的情况有如下四个地方:

1、在类的定义中进行的,只有const 且 static 且 integral 的变量(还得看编译器是否支持,VC6.0就不支持)。

2、在类的构造函数初始化列表中, 包括const对象和Reference对象。

3、在类的定义之外初始化的,包括static变量。因为它是属于类的唯一变量。

4、普通的变量可以在构造函数的内部,通过赋值方式进行。当然这样效率不高。

 

//-----------------Static.h----------------------------

 

#pragma once

 

class Test

{

private :

       int   var1;

       //  int   var11 = 11; 错误的初始化方法

      

       const int   var2 ;

       //  const int   var22 = 22222; 错误的初始化方法

      

       static int   var3;

       //  static int   var33 = 33333; 错误,只有静态常量成员才能直接赋值来初始化

      

       //     static const int   var4 = 4444; //正确,静态常量成员可以直接初始化,因编译器不同吧,VC6.0就不行。

       static const int   var44;

      

       int& var5;       // 引用型成员变量

      

public:

       Test(void);

};

 

//--------------------Static.cpp-----------------------------------

 

#include "Static.h"

 

//    int Test::var1 = 1;; 错误 静态成员才能初始化

//    int Test::var2 = 2; 错误

//    int Test::var44 = 4; // 错误的方法,提示重定义

 

int Test::var3 = 3; //静态成员的 正确的初始化方法

 

const int Test::var44 = 44;     // 正确的初始化方式

 

Test::Test(void)

: var1(1)

, var2(2)   //正确的初始化方法 , var3(3) 不能在这里初始化

, var5(var1)

{

       var1 = 1; //正确, 普通变量也可以在这里初始化

      

       //  var2 = 2; 错误,因为常量不能赋值,只能在 “constructor initializer (构造函数的初始化列表)” 那里初始化

      

       var3 = 3;   //这个赋值时正确的,不过因为所有对象一个静态成员,所以会影响到其他的,这不能叫做初始化了吧

      

       //     var5 = var1;    // 错误,引用型成员变量只能在构造函数初始化列表中初始化

}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 芝士年糕裂开了怎么办 制作牛肉酱咸了怎么办 腌牛肉太咸了怎么办 八宝粥的拉环断了怎么办 八宝粥易拉罐拉环断了怎么办 吃完辣的胃难受怎么办 天天呆在家很烦怎么办 吃多了荔枝上火怎么办 猛犸牙牌子裂了怎么办 玩游戏电脑卡了怎么办 电脑打开卡在选项界面怎么办? 红警突然卡死怎么办 柯基不吃狗粮怎么办 貔貅嘴巴磕破了怎么办 开光貔貅牙磕了怎么办 玉貔貅鼻子碎了怎么办 开光的貔貅摔坏了怎么办 貔貅摔坏了耳朵怎么办? 貔貅摔坏了一点点怎么办 天猫删评价扣4分怎么办 暴风影音下载电视剧下载不了怎么办 fm2017引援电脑买了怎么办 退休时医保不够二十年怎么办 和的面迟迟不发怎么办 做面条的面发了怎么办 发不起来的面团怎么办 如果婚后买房离婚后财产怎么办 空腹体检前喝水了怎么办 莆田市风俗婴儿死了怎么办后事 上司给你换不好岗位怎么办 领导要把我调走怎么办 美国上庭遇法官退休案子怎么办 夫妻一套房离婚户囗怎么办 正营生不了副团怎么办 浅色衣服被染色了怎么办 解大便解不出来怎么办 强拆挖掘机被村民扣押怎么办 小孩哭的时候接不上气怎么办 昆明市长信箱发不出去怎么办 中国公民在香港想去澳门怎么办 面包车不给贴膜怎么办