c 植物類 繼承多型 菱形繼承

2021-12-29 16:22:52 字數 527 閱讀 3162

#pragma once//標頭檔案

#include

#include

using namespace std; //

// 1.實現以下幾個類的成員函式

// 2.實現乙個虛函式的覆蓋及呼叫

// 3.處理菱形繼承問題。//

// 植物

class botany;

class tree : public botany;

class flower : public botany;

// 白蘭花,即是樹有時花。

class micheliaalba : public flower, public tree;

#include //函式檔案

#include

#include"plant.h"

using namespace std;

size_t botany::_scount = 0;

void botany::display()

int main()

c 繼承 二 菱形繼承

在c 一 中,寫的程式是單繼承 即乙個子類只有乙個父類 下面將寫乙個多繼承程式 即乙個子類有兩個或兩個以上的父類 多繼承是c 的乙個缺陷 對上述 直接進行編譯會產生問題,問題在於dd.fun 編譯器報錯很明確,它不知道這裡的fun函式是要訪問b中的還是c中的。解決這個問題有兩種方案,第一種是重寫,即...

菱形繼承 菱形虛擬繼承

菱形繼承 鑽石繼承 模型 拿如下 舉例 class person class student public person class teacher public person class graduate public student,public teacher void test 當派生類gr...

C 菱形繼承

在c 繼承體系中,有一類問題是永遠跑不掉的即菱形繼承問題。此類問題又被稱作鑽石繼承問題,只是一種較差的設計結構,剛好看到這個問題,特此總結一下。先來看一下菱形繼承的基本結構 a和b從基類base中繼承,而d多重繼承於a,b。那就意味著d中會有base中的兩個拷貝。因為成員函式不體現在類的記憶體大小上...