1.繼承的基本語法
語法:class 子類:繼承方式 父類{};
2.繼承的不同方式
#include
using
namespace std ;
#include
class
person
;class
trumpfamily
:public person //public形式的繼承
;class
pete***mily
:private person //private形式的繼承};
class
candyfamily
:protected person //protected形式的繼承};
void
test01()
void
test02()
void
test03()
int main (
)
3.繼承中物件模型
無論何種方式的繼承,都會將父類中所有的非靜態成員拷貝到子類,只是讀取許可權問題。
4.繼承的構造和析構順序
父類:先構造後析構,子類相反。符合先進後出原則。
5.繼承中同名成員的處理
子類物件可以直接訪問到子類中同名成員
子類物件加作用域可以訪問到父類同名成員
當子類與父類擁有同名的成員函式,子類會隱藏父類中同名成員函式,加作用域可以訪問到父類中同名函式
class
father};
class
son:
public father};
void
test01()
6.繼承中同名靜態成員處理
靜態成員和非靜態成員出現同名,處理方式一致
class
base
static
void
func
(int a)
static
int m_a;};
int base::m_a =
100;
class
son:
public base
static
int m_a;};
int son::m_a =
200;
//同名成員屬性
void
test01()
//同名成員函式
void
test02()
intmain()
7.多繼承問題語法
c++允許乙個類繼承多個類
語法:class 子類 :繼承方式 父類1 , 繼承方式 父類2...
8.菱形繼承的問題
菱形繼承概念
兩個派生類繼承同乙個基類,
又有某個類同時繼承者兩個派生類,
這種繼承被稱為菱形繼承,或者鑽石繼承。
class
animal
;//繼承前加virtual關鍵字後,變為虛繼承
//此時公共的父類animal稱為虛基類
class
sheep
:virtual
public animal
;class
tuo:
virtual
public animal
;class
sheeptuo
:public sheep,
public tuo
;void
test01()
intmain()
總結:
菱形繼承帶來的主要問題是子類繼承兩份相同的資料,導致資源浪費以及毫無意義
利用虛繼承(virtual)可以解決菱形繼承問題。
本文是根據b站內容:《黑馬程式設計師匠心之作|c++教程從0到1入門程式設計,學習程式設計不再難》: 學習整理筆記。
c 繼承基礎知識
1,繼承 在乙個已有的類上建立乙個新的類,類的繼承 新類從已有的類獲得已有的特性,新類為派生類 2,class a public b,public c 關於訪問許可權,參考另一篇博文,3,子類向基類傳資料 1,建構函式,如下 class a class b public a 2,基類成員函式 4,派...
C 基礎知識之類繼承
using system using system.collections.generic using system.linq using system.text namespace classinherit set pubic修飾,它的子類繼承得到 public void shout class ...
CPP基礎知識 關於菱形繼承
一 什麼是菱形繼承?下面先給出乙個圖來說明菱形繼承 以下是菱形繼承的物件模型 圖中,b類繼承了a類 單繼承 c類也繼承了a類 單繼承 d類既繼承了a類,又繼承了b類 多繼承 這樣就構成了乙個 菱形 繼承。下面我們把這個模型用 例項化一下 class a class b public a class ...