国产探花免费观看_亚洲丰满少妇自慰呻吟_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()的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 准格尔旗| 曲松县| 晋州市| 清水河县| 明水县| 马边| 宜城市| 咸阳市| 景宁| 平遥县| 安乡县| 武汉市| 张家界市| 大余县| 常熟市| 文登市| 阜宁县| 贵州省| 青浦区| 噶尔县| 永泰县| 澄江县| 黑龙江省| 盐亭县| 五原县| 开鲁县| 佛教| 海淀区| 金华市| 顺平县| 融水| 兴宁市| 太保市| 姚安县| 榆树市| 平乐县| 朝阳区| 抚远县| 陕西省| 宜宾市| 绵竹市|