程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> private繼承與復合

private繼承與復合

編輯:C++入門知識

private繼承定義:private繼承而來的所有成員,在derived中都會變成private屬性。
應用場合:當一個意欲成為derived class 者想訪問一個意欲成為base class 者的protected成分,
或為了重新定義一或多個virtual 函數時可以用private繼承。
知識點:
private繼承意味只有實現部分被繼承,接口部分應略去。
如果classes之間的繼承關系是private,編譯器不會自動將一個derived class對象轉換為一個base class對象,
這樣的轉換會導致錯誤。請記住,private繼承純粹只是一種實現技術。

盡量用復合代替private繼承。因為復合可避免virtual函數重定義。
事例:
class Widget : public Timer
{
private:
 virtual void onTick() const; //查看Widget的數據等等。
};

//復合實現
class Widget
{
private:
 class WidgetTimer : : public Timer
 {
 public:
  virtual void onTick() const; //查看Widget的數據等等。
 };
 WidgetTimer timer;
};

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved