国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C++/CLI思辨錄之再談繼承

2019-11-17 05:29:22
字體:
來源:轉載
供稿:網友

  在面向對象編程領域一個要害的概念是繼續。

  在OO和C++中,類成員共有三種級別的繼續:public,PRotected和private。對于基類成員的存取操作應該依靠于下面兩個因素:

  ·派生類聲明其類頭(public, protected 或 private)的方式

  ·對類成員的存取指定標志(public, protected 或 private)

  假如你在基類中聲明成員為private,那么這些成員對于任何派生類都是不可存取的。

  假如你在基類中聲明成員為protected,而且新類是基類的私有派生,那么這些成員在派生類中變為私有的。

  假如你在基類中聲明成員為protected,而且新類是基類的protected 型派生,那么這些成員在派生類中變為protected 的。

  假如你在基類中聲明成員為protected,而且新類是基類的public 型派生,那么這些成員在派生類中變為protected的。

  假如你在基類中聲明成員為public,而且新類是基類的private 型派生,那么這些成員在派生類中變為private 的。

  假如你在基類中聲明成員為public,而且新類是基類的protected 型派生,那么這些成員在派生類中變為protected的。

  假如你在基類中聲明成員為public,而且新類是基類的public 型派生,那么這些成員在派生類中變為public 的。

  這是一些老式的C++規則。在.Net中,情況就大大不同了-.Net僅支持public繼續。但是當一個類被public繼續,則基類的保護成員將對新的派生類成為private的。

  考慮下面的三個C++類:

class A
{
 protected: void fa()
 { printf("fa called"); }
};
class B : public A
{
 public: void fb()
 { fa(); }
};
class C : public B
{
 public: void fc()
 { fa(); }
};
int main()
{
 C c;
 c.fc();
 return 0;
}
  根據我前面介紹的規則,在C++中這些代碼是能成功運行的。但是假如你把它們改變為托管類,則在類c中是不能調用fa()的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平利县| 德江县| 台南市| 西盟| 雷州市| 弥勒县| 镇平县| 菏泽市| 台江县| 北流市| 仙居县| 清远市| 神农架林区| 利津县| 蛟河市| 伊吾县| 麻城市| 土默特右旗| 阿合奇县| 永靖县| 淮北市| 久治县| 兖州市| 赤峰市| 泸溪县| 达尔| 建宁县| 合肥市| 布尔津县| 博湖县| 巧家县| 珠海市| 左云县| 六盘水市| 陇南市| 潜江市| 丰宁| 海丰县| 崇礼县| 浮山县| 泽普县|