最近在學習c++,不一樣類型的c++成員變量在初始化的時候也有頗有的區別,查了一些資料以後再此記錄一下:ios
#include<iostream> using namespace std; //c++ 類成員變量初始化總結 class Test { private: int var1;//普通變量 int &var2;//引用類型 const int var3;//常成員 static int var4;//靜態成員 static const int var5;//靜態常成員 有資料說能夠在申明的時候直接賦值 可是在vc中測試有錯誤 public: Test(): var1(1), var2(var1),//引用成員不能直接賦實際值 var3(3)//常成員變量必須在構造函數的初始化列表中進行初始化 { //var1=11; //普通成員變量也能夠放在函數體裏,可是本質其實已不是初始化,而是一種普通的運算操做-->賦值運算,效率也低 } void display() { cout<<"int var1:"<<this->var1<<endl; cout<<"int &var2:"<<this->var2<<endl; cout<<"const int var3:"<<this->var3<<endl; cout<<"static int var4:"<<this->var4<<endl; cout<<"static const int var5:"<<this->var5<<endl; } }; int Test::var4=4;//靜態成員 const int Test::var5=5;//靜態常成員在此初始化的時候須要加上const 變量 int main() { Test *test=new Test; test->display(); return 1; }