char *c[]={"ONE","TWO","THREE","FOUR"}; // c語言中定義了一個字符串數組(也稱二維字符數組),此時的c是一個二級指針 cout << c[0] << endl; // 輸出為 ONE char **cp[] = {c + 3,c + 2, c + 1, c}; // 定義一個指針型的 指針數組, 存放 那幾個字符串的首地址 char ***cpp = cp; // cp數組的首地址 printf("%s\n",**++cpp); // c+2 --> THREE
不同繼承方式的影響主要體現在:
1、派生類成員對基類成員的訪問控制。
2、派生類對象對基類成員的訪問控制。
三種繼承方式:
1、公有繼承(public)
① 基類的public和protected成員的訪問屬性在派生類中保持不變,但基類的private成員不可訪問。
② 派生類中的成員函數可以直接訪問基類中的public和protected成員,但不能訪問基類的private成員。
③ 通過派生類的對象只能訪問基類的public成員。
2、私有繼承(private)
① 基類的public和protected成員都以private身份出現在派生類中,但基類的private成員不可訪問。
② 派生類中的成員函數可以直接訪問基類中的public和protected成員,但不能訪問基類的private成員。
③ 通過派生類的對象不能訪問基類中的任何成員。
3、保護繼承(protected)
① 基類的public和protected成員都以protected身份出現在派生類中,但基類的private成員不可訪問。
② 派生類中的成員函數可以直接訪問基類中的public和protected成員,但不能訪問基類的private成員。
③ 通過派生類的對象不能訪問基類中的任何成員。
protected成員的特點與作用:
對建立其所在類對象的模塊來說(水平訪問時),它與private成員性質相同。對於其派上類來說(垂直訪問時),它與public成員的性質相同。既實現了數據隱藏,又方便繼承,實現了代碼重用。