一篇文章帶你了解C++面向對象編程--繼承
更新時間:2021年08月31日 18:04:46 作者:Wonderfulness
這篇文章主要介紹了解析C++面對象編程--繼承的運用,是C++入門學習中的基礎知識,需要的朋友可以參考下,希望能夠給你帶來幫助
C++ 面向對象編程 —— 繼承
"Shape" 基類
class Shape {
public:
Shape() { // 構造函數(shù)
cout << "Shape -> Constructor" << endl;
}
~Shape() { // 析構函數(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;
}
運行結果

1.創(chuàng)建派生類對象 :
基類的 Constructor 先執(zhí)行,然后執(zhí)行子類的 Constructor
2.析構派生類對象 :
派生類的 Destructor 先執(zhí)行,然后執(zhí)行基類的 Destructor
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
C++類與對象及構造函數(shù)析構函數(shù)基礎詳解
這篇文章主要為大家介紹了C++類與對象及構造函數(shù)析構函數(shù)基礎詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04

