#includeusing namespace std;
class a //a是父類
a(int x):a(x) {} //帶 引數的建構函式對a 初始化
void printa()
};class b: public a //b 是子類
void printb()// };
int main()
/*如果在子類的建構函式中需要初始化父類的private成員
直接對其賦值是不行的(23行) 只有呼叫父類的建構函式才能完成對它的初始化。
但是在函式體內呼叫父類的建構函式也是不合法的(24行)
只有採取21行的初始化列表呼叫子類建構函式的方式
程式執行結果:
a = 2
b = 3
*/
建構函式初始化列表
建構函式初始化列表以乙個冒號開始,接著是以逗號分隔的資料成員列表,每個資料成員後面跟乙個放在括號中的初始化式。例如 example example ival 0 dval 0.0 ival 和dval 是類的兩個資料成員 上面的例子和下面不用初始化列表的建構函式看似沒什麼區別 example exa...
建構函式初始化列表
c 程式語言中有很多比較重要的概念值得我們去深入 比如今天為大家介紹的有關c 建構函式的相關概念。這一方面的知識在實際程式設計中就是乙個比較重要的應用技術。希望能個大家可以從中學到一些知識。c 建構函式初始化列表以乙個冒號開始,接著是以逗號分隔的資料成員列表,每個資料成員後面跟乙個放在括號中的初始化...
建構函式初始化列表
class object private int v1,v2 看看願意是 先初始化v2為5,然後初始化v1為 3 倍的 v2 但是結果卻是奇葩的,這個是因為建構函式的初始化列表遵循的原則是先初始化父類 父類也是這個原則,那麼就相當於遞迴 然後初始化本類的成員,最後執行建構函式的函式體 而初始化本類的...