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

C++ 多重繼承

編輯:C++入門知識

1.多重繼承的概念:一個類有兩個或者更多個基類

形式為 class <類名>:<訪問屬性> class <類名>,<訪問屬性> class <類名>

如 class A:public class B,public class C

上面的定義中,如果B和C都有print函數,這時A類的對象調用print函數,將會發生二義性,這是多重繼承存在的缺陷,避免這種二義性,可以用域訪問符::,如A類的對象a訪問B類中的print函數,可以用a.B::print().

2.在多重繼承下,一個基類可以再派生層次中出現多次,比如下面的繼承結構

\

<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+QcDgxcnJ+qGhQrrNQ8Dgo6xEwOC8zLPQ19RCwOC6zUMgwOChozwvcD4KPHA+RMDgtcS21M/z0djXxUGhqkKhqkS1xLe9z/LT0MHLQbXE0ru33bixsb6jrNHY18VBoapDoapEtcS3vc/y09DBy7Xatv649rixsb6jrNXiyrHU2rX308PEs9Cps8nUscqxxNHD4rvhs/bP1rb+0uXQ1KOsQyYjNDM7JiM0MzvS/cjrwcvQ6bzMs9C7+tbGwLS94r721eK49s7KzOKjrL2rQcDgyfnD986qQsDgus1DwOC1xNDpu/nA4KOs1eLR+UTA4LXEttTP89a7u+G6rNPQQcDgtcTSu7j2uLGxvqGjPC9wPgo8cD7Q6bv5wOC1xMn5w/fSqrzTyc92aXJ0dWFsudi8/NfWo6y3vcq9yOfPwqO6PC9wPgo8cD5DbGFzcyBCOnZpcnR1YWwgcHViaWMgQTwvcD4KPHA+Q2xhc3MgQzp2aXJ0dWFsIHB1YmxpYyBBPC9wPgo8cD7U2rvYtb241bjVvbK1vbXEtv7S5dDUzsrM4qOsyOe5+0HA4NPQs8nUsXgsxMfDtETA4LXEttTP89Tat8POyrPJ1LF4yrGjrL/J0tTN6sirz/uz/bb+0uXQ1MLwo7+yorK7xNzN6sirz/uz/aGj1eLA79Kqt9bI/dbWx+m/9jwvcD4KPHA+o6gxo6nI57n7eL32vfbU2kHA4NbQs/bP1qOstffTw7PJ1LF4vavDu9PQtv7S5dDUPC9wPgo8cD6jqDKjqcjnuft4s8nUsdTaQcDg1tC6zULA4NbQzazKsbP2z9ajrETA4LbUz/O199PDtcS9q8rHQsDgtcSzydSxeKOs1eLLtcP3xcnJ+sDgtcTKtcD908XPyLy2uN/T2rmyz+3Q6bv5wOC1xMq1wP08L3A+CjxwPqOoM6OpyOe5+3izydSx1NpCwODW0LrNQ8Dg1tDNrMqxs/bP1qOsRMDgttTP87X308OzydSxeMqxo6y9q7vhs/bP1rb+0uXQ1DwvcD4KPHA+IDwvcD4KPHA+z8LD5srHy7XD97XEtPrC66O6PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;"># include using namespace std; class Base { public: Base(int t):x(t){} void print(){cout<

3.虛繼承中的構造順序和析構順序

在上面四個類ABCD的繼承層次中,構造函數的調用順序為A—B—C—D ,析構函數的調用順序剛好相反。

在更復雜的繼承結構中,虛基類和普通基類同時出現,虛基類的調用優先級高於非虛基類,不管虛基類位於什麼繼承層次,虛基類的構造函數在非虛基類之前調用。


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