一篇文章帶你了解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-04Qt 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