在頭文件的類的定義中定義了一個const成員變量c++ 規則:
1、類定義中不能進行初始化,因為頭文件中類的定義只是一個聲明,并沒有分配真正空間,因此變量是不存在的,因此是不能賦值的。
2、const 定義的變量是不能賦值
這可如何是好,聲明中不能賦值,聲明完還不能賦值。又不能不賦值。
解決方案:
1、在構造函數后的參數初始化列表中初始化
2、將const變量同時聲明為 static 類型進行初始化。
Eg:
#include <iostream>class CTestA{public:CTestA():m_iSIZE(20) // method 1{}~CTestA(){}int GetSize(){return m_iSIZE;}private:const int m_iSIZE;};class CTestB{public:CTestB(){}~CTestB(){}int GetSize(){return m_iSIZE;}private:static const int m_iSIZE;};const int CTestB::m_iSIZE = 3; // method 2int main(){CTestA oTestA;CTestB oTestB;std::cout<<"oTestA:"<<oTestA.GetSize()<<std::endl<<"oTestB:"<<oTestB.GetSize()<<std::endl;return 0;}
以上這篇c++ 類中const成員變量的賦值方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答