按要求完成下面的程式:類和函式介面定義: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 ...