description
定義vehicle類,包括:
1. 乙個int型別屬性num,表示汽車的輪子數量。
2. 建構函式、析構函式,輸出如樣例所示的資訊。
定義bus類,是vehicle類的子類,包括:
1. 乙個int型別屬性guest,表示客車可乘坐的人數。
2. 建構函式、析構函式,輸出如樣例所示的資訊。
定義truck類,是vehicle類的子類,包括:
1. 乙個int型別屬性weight,表示貨車可載荷的貨物重量。
2. 建構函式、析構函式,輸出如樣例所示的資訊。
input
輸入有多行,每行乙個測試用例,每行包括1個正整數(車的輪子數量)、1個字元b或者t(b、t分別表示客車、貨車)、1個正整數(可乘坐的人數或可承載的貨物重量)。
output
見樣例。
sample input
4 b 40
8 t 15
sample output
vehicle has 4 wheels is created.
bus which can carry 40 persons is created.
bus which can carry 40 persons is erased.
vehicle has 4 wheels is erased.
vehicle has 8 wheels is created.
truck which can carry 15 tons goods is created.
truck which can carry 15 tons goods is created.
vehicle has 8 wheels is erased.
hint
int main()
else
delete veh;
}return
0;}
ac**
#include
using
namespace
std;
class vehicle
else
delete veh;
}return
0;}
1、對於虛擬析構函式的用法
(一)虛析構函式的作用
總的來說虛析構函式是為了避免記憶體洩露,而且是當子類中會有指標成員變數時才會使用得到的。也就說虛析構函式使得在刪除指向子類物件的基類指標時可以呼叫子類的析構函式達到釋放子類中堆記憶體的目的,而防止記憶體洩露的.
(二)總結虛析構函式的作用:
(1)如果父類的析構函式不加virtual關鍵字
當父類的析構函式不宣告成虛析構函式的時候,當子類繼承父類,父類的指標指向子類時,delete掉父類的指標,只調動父類的析構函式,而不調動子類的析構函式。
(2)如果父類的析構函式加virtual關鍵字
當父類的析構函式宣告成虛析構函式的時候,當子類繼承父類,父類的指標指向子類時,delete掉父類的指標,先調動子類的析構函式,再調動父類的析構函式。
因此:
只需要在父類中用虛擬析構就可以了,之後的都會在析構的時候自動呼叫父類的虛擬析構;
2、為什麼在析構的時候只有父類的析構,沒有子類的析構呢?
因為指標是父類的指標,當刪除指標的時候只會呼叫父類的析構函式;
3、這裡無參初始化的時候為什麼沒有輸出呢?
vehicle(int i=0):num(i)
// vehicle(int i):num(i){cout<<"vehicle has "<
是因為定義的是指標,而且是動態的指標,所以剛開始還沒有分配空間,因此不會初始化。
由此可得最上面的寫法和下面注釋掉的寫法是一樣的;
汽車 客車 貨車
problem c 汽車 客車 貨車time limit 1 sec memory limit 128 mb submit 3377 solved 1854 submit status description定義vehicle類,包括 乙個int型別屬性num,表示汽車的輪子數量。建構函式 析構函式...
牛客 車輛排程 dfs
題目大意 給出乙個 n m 的矩陣,其中 r 表示遙控車,d 表示目的地,x 表示障礙物,每一秒都可以操控任意乙個遙控車向四個方向中的任意方向移動,不過移動必須滿足直到撞到空地的邊界 障礙物或其他遙控車後才能停止,很像小時候玩過的推冰塊遊戲。然後問,能否存在一種方法,使得在第 k 分鐘時使得任意乙個...
客車網上售票系統(分解十一)
1 今日完成任務 1 訂單統計 2 核心原始碼 1 訂單統計前台頁面效果 2 訂單統計前台頁面 3 訂單統計後台頁面 public partial class orderstatistics system.web.ui.page dal層 public dataset getdata 3 遇到的問題...