1.特殊变量函数
2.初始化方法code
因此,纵向来看,初始化方式主要有两种:对象
横向来看,不一样数据类型的初始化方式分别为:生命周期
class Test { public: Test():i(1), ri(i), ci(2), cd(0) {} // 对于通常常量型(非integral type)和引用型成员变量,必须经过初始化参数列表进行初始化 // 普通成员变量也能够放在函数体中,但本质已不是初始化,而是一种普通的赋值运算,效率极低 private: int i; // 普通成员变量 // 初始化参数列表,函数体 int& ri; // 引用,初始化参数列表 const int ci; // 常量 // 类内初始值设定 // 初始化参数列表 const int& cri; // 常引用,初始化参数列表 const double cd; // 常量非integral types // 初始化参数列表 static int si; // 静态很是量 // 类外,C++11以后的版本也能够在类内部进行初始化 static const int sci; // 静态常量(integral type) // 类外或者类内直接初始化 //static const int sci=100; static const double scd; // 静态常量(非integral ) // 类外 };
static
修饰)、引用类型,在类内部便可实现初始化,在类外实现初始化的一定是static
类型(固然一部分的静态成员,也即同时又是const和integral type的,可在类内初始值设定,这一语法特性并不是为全部的编译器所支持,因此一种推荐的作法,便是凡是static类型的,咱们总在类外进行初始化,哪怕它在类内已进行初始值设定,只要在类外初始化时不修改其值):注意:静态变量的初始化并无static关键字 int Test::si = 0; const int Test::sci = 1; const double Test::scd = 99.0;
static
变量同样,程序一运行就分配内存并初始化,生命周期和程序一致;