c++中物件導向3大概念
封裝: 突破c函式的概念…用類做函式引數的時候,可以使用物件的屬性 和物件的方法
繼承: a b **復用
多型 : 可以使用未來…
實現多型的三個條件:
1:要有繼承
2 :要有虛函式重寫
3: 用父類指標(父類引用)指向子類物件…
class
parent
virtual
void
print()
//子類的和父類的函式名字一樣
protected
:private
:int a ;};
class
child
:public parent
virtual
void
print()
//virtual父類寫了virtual,子類可寫可不寫
protected
:private
:int b;};
void
howtoprint
(parent *base)
void
howtoprint2
(parent &base)
重寫 過載 重定義
重寫發生在2個類之間
過載必須在乙個類之間
重寫分為2類
1 虛函式重寫 將發生多型
2 非虛函式重寫(重定義)
class
parent
virtual
void
func()
virtual
void
func
(int i)
virtual
void
func
(int i,
int j)
virtual
void
func
(int i,
int j,
int m ,
int n)
protected
:private:}
;class
child
:public parent
/* void abc(int a)
*/virtual
void
func
(int i,
int j)
virtual
void
func
(int i,
int j,
int k)
protected
:private:}
;//過載重寫和重定義
void
main()
C 過載 重寫 重定義 多型
多型是基於對抽象方法的覆蓋來實現的,用統一的對外介面來完成不同的功能。過載也是用統一的對外介面來完成不同的功能。那麼兩者有什麼區別呢?也叫覆蓋,子類重新定義父類中有相同名稱相同引數的虛函式,主要是在繼承關係中出現的,被重寫的函式必須是virtual的,重寫函式的訪問修飾符可以不同,儘管virtual...
C 過載 重寫和重定義
函式過載 overload 函式過載是指在乙個類中宣告多個名稱相同但引數列表不同的函式,這些的引數可能個數或順序,型別不同,但是不能靠返回型別來判斷。特徵是 1 相同的範圍 在同乙個作用域中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無 注 函式過載與有無virtual修飾無關...
C 過載重寫重定義
includeusing namespace std 函式過載 必須在同乙個類中進行 子類無法過載父類的函式,父類同名函式將被名稱覆蓋 過載是在編譯期間根據引數型別和個數決定函式呼叫 函式重寫 必須發生於父類和子類之間 並且父類和子類中的函式必須有完全相同的原型 使用virtual宣告之後能夠產生多...