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

c++類的基礎記錄

編輯:C++入門知識

1 virtual的目的是啟用動態綁定。除了構造函數數之外, 任意非static成員函數都可以虛函數。Virtual只在類的成員函數聲明中出現, 不能用在燈定義體外部出現的函數定義上。
2 public 成員能訪問 ,rivate 不能訪問,只能由本類的成員和友元訪問。
 protected 像private 成員一樣, protected成員不能被類的用戶訪問。
像public成員一樣, protected 成員可被類的派生類訪問。
3類派生列表 指定基類。基類可以是一個或多個類。
4 派生類一般要重定義所繼承的虛函數。
5 派生類對象包含基類對象作為子對象。
派生類本身定義的(非static)成員加上由基類(非static)成員子對象。
派生類中的函數可以使用基類的成員。
派生類可以訪問基類的public 和protrcted 成員,好象自己的成員一樣。
派生類本身可以做為基類。
派生類的聲明包含類名但不包派生列表。
例如:
//error d forward declaration must not include the derivation list
class Bulk_item :public Item_base;
//forwaed declarations of bath derived and nonderied class.
class Bulk_item;
class Item_base;
 
6 從派生類到基類的轉換。可以使用一個派生類型的對象的地址或引用對基類類型的指針或引用進行賦值或初始化。但是嚴格的說,派生類型對象,並沒有轉換為基類類型對象。
7 繼承級別 基類本身指定對自身成員的最小訪問控制。如果成員在本類中為private 則順有基類和基類的友元可以訪問該成員。派生類不能訪問基類的private成員,也不能使用自己的用戶能夠訪問那些成員。 如果基類成員為public或protected, 則派生中使用的訪問標號決定該成員在派生類中的訪問級別。
  公用繼承 基類成員保持自己的訪問級別。基類的public 成員為派生類的public的public成員,基類的protected成員為派生類的protected成員。
  受保護繼承 基類的public 和 protected成員在在派生類中為protected成員。
  私有繼承  基類的所有成員在精兵簡政類中為private成員。
 
8 去除個別成員 派生類可以恢復繼承成員的訪問級別, 但不能使訪問級別比基類中原來指定的的更嚴格或更寬松。
例如:
  class Derived : private Base {
  public :
       // maintain access levels for members related to the size the objct
       using Base::size;  //size 在Base中為public 但在Derived中為private
protected:
       using Base::n;
}
 
9  class 定義的派生類默認具有private繼承。struct定義的類默認具有public繼承。在繼承關系上也是這樣的。
 
10 友元可以訪問類的private 和 protected 數據。
   友元關系不能繼承。 基類的友元對派生類的成員沒有特殊訪問權限。如果基類被授予友元關系,則只有基類具有特殊訪問權限, 該基類的派生類不能訪問授予友元關系的類。
   如果派生類想要將自己成員的訪問權授予其基類的友元。派生類必須顯式的這樣做:基類的友元對從該基類沒有特殊訪問權限。 同樣如果基類和派生都需要訪問另一個類,那個類必須特地將訪問權限授予基類和每一個派生類。
11 如果基類定義了static成員, 則整個繼承層次中只有一個這樣的成員,無論從基類派生出多少派生類, 每個static成員只有一個實例。
   static 成員遵循常規訪問控制: 如果成員在基類中為private, 派生類不能訪問它。
 
12 派生類到基類的轉換 如果有一個派生類型的對象, 則可以使用它的地址對基類類型的指針進行賦值或初始化。(定義基類的指針可以指向派生類型)
同樣可以使用派生類型的引用或對象基類類型的引用。
13  引用的轉換不同於轉換對象。   
 
  -- 《c++ primer》

 

 

摘自 梵聲沐晖

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