C 類繼承題目練習詳解

2021-09-16 21:22:16 字數 3714 閱讀 1259

編寫 animal 類和 dog 類; 根據使用者輸入的數值,建立相應個數的 animal 物件和 dog 物件(10分)

題目內容:

1. 編寫兩個類

dog類繼承animal類;

animal類和dog類各有乙個預設建構函式,分別輸出字串 「animal」和「dog」。輸出字串後換行

2. 編寫主函式

在主函式中接受使用者輸入的乙個整數n(大於0);

按照先建立乙個 animal 物件,緊接著再建立乙個 dog 物件這樣交替建立的次序,一共建立 n 個 animal物件和dog物件

程式中除了接受使用者輸入的整數之外,沒有任何其它輸入語句;

程式中除了建構函式的輸出之外,沒有任何其它輸出。

輸入格式:

乙個大於零的整數

輸出格式:

輸出多行資訊,最後一行是空行

沒有任何其它提示資訊

輸入樣例:

輸出樣例:

animal

animal

doganimal

animal

dog當呼叫子類的建構函式時,會自動呼叫父類的建構函式

#include #include #include using namespace std;

class animal

};class dog:public animal

};int main()

}

基於前乙個作業題目,改寫 animal 類和 dog 類; 根據使用者輸入的數值,建立相應個數的 animal 物件和 dog 物件,然後再銷毀。 用類的靜態資料成員記錄存活物件的數量。用建構函式和析構函式來更新存活物件的數量(10分)

題目內容:

1.編寫兩個類

dog類繼承animal類;

animal類和dog類各有乙個預設建構函式,分別輸出字串 「animal」和「dog」。輸出字串後換行

在類中(哪個類由你自己決定)新增乙個靜態資料成員,用於計算執行時刻存活的所有animal和dog物件的數量。所謂「存活的物件數量」是指建立的物件數量減去銷毀的物件數量。注意:該靜態資料成員要統計所有的animal和dog物件的數量,不僅僅是animal的數量或者僅僅dog物件的數量。

新增上述靜態資料成員的getter函式

你需要修改類中的建構函式和析構函式,使得上述靜態資料成員能夠正確地反映當前系統中存活的物件的數量。注意析構函式中不輸出任何資訊

2.編寫主函式

在主函式中接受使用者輸入的乙個整數n(大於0);

建立兩個vector物件v1 和 v2 (你可以用其它名字),分別儲存animal物件的指標和dog物件的指標。

按照先銷毀乙個animal物件,緊接著再銷毀乙個 dog 物件這樣交替次序,將v1和v2中指標所指向的物件都銷毀(提示,可以用陣列下標運算子訪問vector物件中儲存的指標。使用delete運算子銷毀物件)。每銷毀一輪animal和dog物件後,輸出所有物件的數量並換行(也就是銷毀乙個animal物件,再銷毀乙個dog物件,然後輸出所有物件的數量並換行;之後再執行下一輪銷毀操作,直到執行n輪後結束

程式中除了接受使用者輸入的整數之外,沒有任何其它輸入語句;

程式中除了建構函式和存活物件數量的輸出之外,沒有任何其它輸出。

輸入格式:

乙個大於零的整數

輸出格式:

輸出多行資訊,最後一行是空行

沒有任何其它提示資訊

這裡為了方便直接把靜態成員設為公有類

#include #include using namespace std;

class animal

~animal()

static int number;

};int animal::number = 0;

class dog:public animal

};int main()

for (int i = 0; i < v1.size(); i++)

}

題目內容:

1.編寫三個類

dog類和cat類繼承animal類;

dog類、cat類、animal類各有乙個預設建構函式,分別輸出字串「dog」、「cat」和「animal」。輸出字串後換行。注意三個字串的首字母都是大寫。

在 animal 類中定義純虛函式 speak();

在 dog 和 cat類中覆寫基類的 speak() 函式。dog類的speak函式輸出字串「wang」之後換行;cat類的speak函式輸出字串「miao」之後換行。注意字串「wang」和「miao」都是小寫字母

上述三個類中如果有任何其它函式,則這些函式不直接或者間接輸出任何資訊

2.編寫主函式

在主函式中接受使用者輸入的乙個整數n(大於0);

建立乙個vector物件v (你可以用其它名字),儲存animal物件的指標。

將存入v中的物件,按照先後次序,逐個呼叫 speak() 函式,然後用 delete 顯式銷毀。(注意:每呼叫乙個物件的 speak() 之後,就立即用 delete 銷毀該物件)。

程式中除了接受使用者輸入的整數之外,沒有任何其它輸入語句;

程式中除了建構函式和speak()的輸出之外,沒有任何其它輸出。

輸入格式:

乙個大於零的整數

輸出格式:

輸出多行資訊,最後一行是空行

沒有任何其它提示資訊

輸入樣例:

輸出樣例:

animal

doganimal

catanimal

doganimal

catwang

miao

wang

miao

#include #include using namespace std;

class animal

~animal()

static int number;

virtual void speak() = 0;

};int animal::number = 0;

class dog:public animal

void speak()

};class cat:public animal

void speak()

};int main()

for (int i = 0; i < v1.size(); i++)

}

詳解C 基礎 類繼承

一 前言 好吧,本系列部落格已經變成了 c primer plus 的讀書筆記,尷尬。在使用c語言時,多通過新增庫函式的方式實現 重用,但有乙個弊端就是原來寫好的 並不完全適用於現在的情況。oop設計思想中類的繼承相比來說更為靈活,可以新增新的資料成員和方法,也能修改繼承下來方法的實現細節,同時還保...

LeetCode 求和類演算法題目 詳解(C )

樂樂獨家研製c 解決方法詳解,包含class詳解以及後期main呼叫 1.two sum 這裡就擷取官網上的演算法題目 樂樂實在懶得打了 兩道題一起講解 嘻嘻 這道題目要求用的框架以及樂樂的答案 includeusing namespace std include includeclass solu...

php 類介面繼承練習

1 3 hypo 4介面的特性 介面中定義的所有方法都必須是public 5介面的實現 乙個介面可以使用implements操作符,類中必須實現介面中的所有方法,否則會報fatal錯誤,如果要實現多個介面,可以使用逗號來分隔多個介面的名稱。6 7header content type text ht...