C++初始化列表問題,類中有一個物件型別的陣列成員變數,在初始化列表中初始化時報錯“[]”操作符語法錯誤
阿新 • • 發佈:2019-02-03
陣列作為成員變數時只有預設初始化,也就是無法傳遞引數。有兩種變通方案:你可以把物件陣列改成指標陣列,或者把ClassB類的構造和初始化分開。 方案一: class ClassA{ private: ClassB* arrayOfObjectClassB[2]; public: ClassA(int i){ arrayObjectOfClassB[0]=new ClassB(i); arrayObjectOfClassB[1]=new ClassB(i); } }; 方案二: class ClassB{ private: int data; public: ClassB(int d):data(d){ } ClassB(){ } void Init(int d){data=d;} }; class ClassA{ private: ClassB arrayOfObjectClassB[2]; public: ClassA(int i){ arrayObjectOfClassB[0].Init(i); arrayObjectOfClassB[1].Init(i); } };