建立名為vehicle(車)的基類,它含有製造商的名稱(string型別)、發動機缸數(int 型別)以及車主(person型別)然後建立vehicle類的乙個派生類truck(卡車),它具有一些附加屬性,包括載重(double型別 單位:噸)和牽引力(int型別 ,單位:磅)。類應具有合理的建構函式、取值成員函式(get)、賦值成員函式(set)、乙個過載的賦值操作符以及乙個拷貝建構函式。
在主函式中編寫測試**來測試所有成員方法並按照下頁給出的宣告完成person類的定義部分。
**實現部分:
#include #includeusing namespace std;
class person
;/*車*/
class vehicele
; vehicele(person, string, int);
vehicele(const vehicele&);//拷貝
person get_person()const;
void set_person(person);
string get_manufacturer()const;
void set_manufacturer(string);
int get_enginenum()const;
void set_enginenum(int);
vehicele& operator=(const vehicele&);
protected:
person person;
string manufacturer;//製造商
int enginenum;//發動機缸數
};//卡車
class truck :public vehicele
;person::person()
person::person(string str)
string person::getname()const
person& person::operator=(const person& p)
istream& operator>>(istream& in, person& p)
ostream& operator<
;vehicele::vehicele(person p, string a, int b)
person vehicele::get_person()const
void vehicele::set_person(person p)
string vehicele::get_manufacturer() const
void vehicele::set_manufacturer(string a)
int vehicele::get_enginenum() const
void vehicele::set_enginenum(int a)
vehicele& vehicele::operator=(const vehicele& v)
vehicele::vehicele(const vehicele& t)
truck::truck(double a, int b, person p, string s, int c) :vehicele(p, s, c)
truck::truck(const truck& t) : vehicele(t.person, t.manufacturer, t.enginenum)
double truck::get_ton()const
void truck::set_ton(double a)
int truck::get_pound()const
void truck::set_pound(int a)
truck& truck::operator=(const truck& t)
int main()
{ /*車類繼承*/
person person;
string manufacturer;//製造商
int enginenum;//發動機缸數
double ton = 0.00;//噸
int pound = 0;//牽引力
cout << "你好,請填寫你的購車資訊" << endl;
cout << "姓名、製造商" << endl;
cin >> person>> manufacturer;
cout << "發動機缸數、噸、牽引力" << endl;
cin >> enginenum >> ton >> pound;
cout << endl;
/*小車*/
vehicele vc(person, manufacturer, enginenum);
cout << vc.get_person() << "購買了一輛:" << vc.get_manufacturer() << "發動機缸數是:" << vc.get_enginenum();
/*卡車*/
truck tu(ton, pound, person, manufacturer, enginenum);
/*呼叫淺拷貝*/
truck tc(tu);
cout << tu.get_person() << "購買了一輛:" << tu.get_manufacturer() << "發動機缸數是:" << tu.get_enginenum()
<< "噸數:"<< tu.get_ton()<
C 繼承關係
繼承關係的 演示 class person public person string name,string int age,double weight public void eat double food class student person public void study double...
C 繼承關係
繼承和派生概述 繼承和派生是同乙個過程從不同角的度看 保持已有類的特性而構造新類的過程稱為繼承。在已有類的基礎上新增自己的特性而產生新類的過程稱為派生。被繼承的已有類稱為基類 或父類 派生出的新類稱為派生類 或子類 直接參與派生出某類的基類稱為直接基類。基類的基類甚至更高層的基類稱為間接基類。派生的...
c 的繼承關係總結
對於沒有虛函式的情況 1.子類物件的指標可以直接賦值給父類的指標,但位址值可能會變化,也就是可能編譯器給自動做了轉換,具體可以看下面的例子。這也是最常規的用法。如果是多層繼承,將子類的指標賦值給父類的指標時,該指標位址會自動轉換到該父類的成員的開始位址的地方。2.父類的物件的指標不能直接賦值給子類的...