PTA 6 1 私有繼承派生類使用基類的成員函式

2021-10-04 08:05:03 字數 1314 閱讀 5413

按要求完成下面的程式:

1、定義乙個animal類,成員包括:

(1)整數型別的私有資料成員m_nweightbase,表示animal的體重;

(2)整數型別的保護資料成員m_nagebase,表示animal的年齡;

(3)公有函式成員set_weight,用指定形參初始化資料成員m_nweightbase;

(4)公有成員函式get_weight,返回資料成員m_nweightbase的值;

(5)公有函式成員set_age,用指定形參初始化資料成員m_nagebase;

2、定義乙個cat類,私有繼承自animal類,其成員包括:

(1)string型別的私有資料成員m_strname;

(2)帶引數的建構函式,用指定形參對私有資料成員進行初始化

; (3)公有的成員函式set_print_age,功能是首先呼叫基類的成員函式set_age設定資料成員m_nagebase的值為5,接著輸出成員m_strname的值,然後輸出「, age = 」,最後輸出基類的資料成員m_nagebase的值。具體輸出格式參見main函式和樣例輸出。

(4)公有的成員函式set_print_weight,功能是首先呼叫基類的成員函式set_weight設定資料成員nweightbase的值為6,接著輸出成員m_strname的值,然後輸出「, weight = 」,最後呼叫基類的成員函式get_weight輸出基類的資料成員m_nagebase的值。具體輸出格式參見main函式和樣例輸出。

類和函式介面定義:

參見題目描述。

裁判測試程式樣例:

#include

#include

using namespace std;

/* 請在這裡填寫答案 */

int main()

輸入樣例:

本題無輸入。

輸出樣例:

persian, age = 5

persian, weight = 6

class

animal

void

set_weight

(int weight)

intget_weight

(void

)void

set_age

(int age)};

class

cat:

private animal

void

set_print_age()

void

set_print_weight()

};

繼承 基類和派生類

說明派生類的生成和使用 include using namespace std class test1 基類 test1 int a x a void disp class test2 public test1 派生類 test2 int a,int b test1 a void disp intm...

繼承 基類和派生類指標

1,直接用基類指標引用基類物件 2,直接用派生類指標引用派生類物件 3,用基類指標引用乙個派生類物件,由於派生類物件也是基類的物件,所以這種引用是安全的,但是只能引用基類成員。若試圖通過基類指標引用那些只在派生類中才有的成員,編譯器會報告語法錯誤。解決該問題的答案是虛函式和多型性 4,用派生類指標引...

派生類訪問基類的私有成員

派生類不能直接訪問基類的私有成員,若要訪問必須使用基類的介面,即通過其成員函式。實現方法有如下兩種 1.在基類的宣告中增加保護成員,將基類中提供給派生類訪問的私有成員定義為保護成員。2.將需要訪問基類私有成員的派生類成員函式宣告為友元。cpp include using namespace std ...