一篇文章帶你了解C++面向?qū)ο缶幊?-繼承
C++ 面向?qū)ο缶幊?—— 繼承
"Shape" 基類
class Shape {
public:
Shape() { // 構(gòu)造函數(shù)
cout << "Shape -> Constructor" << endl;
}
~Shape() { // 析構(gòu)函數(shù)
cout << "Shape -> Destructor" << endl;
}
void Perimeter() { // 求 Shape 周長
cout << "Shape -> Perimeter" << endl;
}
void Area() { // 求 Shape 面積
cout << "Shape -> Area" << endl;
}
};
"Circle" 派生類
"Circle" 類繼承于 “Shape” 類
class Circle : public Shape {
public:
Circle(int radius) :_r(radius) {
cout << "Circle -> Constructor" << endl;
}
~Circle() {
cout << "Circle -> Destructor" << endl;
}
void Perimeter() {
cout << "Circle -> Perimeter : "
<< 2 * 3.14 * _r << endl; // 圓周率取 3.14
}
void Area() {
cout << "Circle -> Perimeter : "
<< 3.14 * _r * _r << endl; // 圓周率取 3.14
}
private:
int _r;
};
"Rectangular" 派生類
"Rectangular" 類繼承于 “Shape” 類
class Rectangular : public Shape {
public:
Rectangular(int length, int width) :_len(length), _wid(width) {
cout << "Rectangular -> Contructor" << endl;
}
~Rectangular() {
cout << "Rectangular -> Destructor" << endl;
}
void Perimeter() {
cout << "Rectangular -> Perimeter : "
<< 2 * (_len + _wid) << endl;
}
void Area() {
cout << "Rectangular -> Area : "
<< _len * _wid << endl;
}
private:
int _len;
int _wid;
};
"main()" 函數(shù)
int main()
{
/* 創(chuàng)建 Circle 類對象 cir */
Circle cir(3);
cir.Perimeter();
cir.Area();
cout << endl;
/* 創(chuàng)建 Rectangle 類對象 rec */
Rectangular rec(2, 3);
rec.Perimeter();
rec.Area();
cout << endl;
return 0;
}
運行結(jié)果

1.創(chuàng)建派生類對象 :
基類的 Constructor 先執(zhí)行,然后執(zhí)行子類的 Constructor
2.析構(gòu)派生類對象 :
派生類的 Destructor 先執(zhí)行,然后執(zhí)行基類的 Destructor
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++類與對象及構(gòu)造函數(shù)析構(gòu)函數(shù)基礎(chǔ)詳解
這篇文章主要為大家介紹了C++類與對象及構(gòu)造函數(shù)析構(gòu)函數(shù)基礎(chǔ)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Qt QTreeWidget 樹形結(jié)構(gòu)實現(xiàn)代碼
Qt中實現(xiàn)樹形結(jié)構(gòu)可以使用QTreeWidget類,也可以使用QTreeView類,QTreeWidget繼承自QTreeView類,接下來通過本文給大家介紹Qt QTreeWidget 樹形結(jié)構(gòu)實現(xiàn)代碼,需要的朋友可以參考下2021-11-11

