2014-01-16 48 views
0

所以我想要做的就是初始化列表:從基類的構造函數和成員函數

初始化我的子類的構造函數與我的基類的構造函數。

這是我的基類構造函數的樣子。

Appointment::Appointment(string description, int month, int day, int year, int hour, int minute):date(month, day, year){ 
    this-> hour = hour; 
    this-> minute =minute; 
    this-> description = description; 
} 

這是我的子類的構造看起來像

Daily::Daily(string description, int month, int day, int year, int hour, int minute) : Appointment(description, month, day, year, hour, minute){ 
} 

^在我的子類的構造函數(日)有指出我需要明確地初始化成員「日期」,這確實一個錯誤沒有默認的構造函數。

如何在我的子類構造函數的初始化列表中顯式初始化'date'和'Appointment'?

它看起來像這樣嗎?

Daily::Daily(string description, int month, int day, int year, int hour, int minute) : Appointment(description, month, day, year, hour, minute):Date(month, day, year) 

感謝

+0

可能重複[Undeclared identifier?我以爲我定義了它](http://stackoverflow.com/questions/21156969/undeclared-identifier-i-thought-i-defined-it) – Shoe

+0

因此,你的基類和派生類都有不同的'日期'數據成員? – juanchopanza

回答

1

考慮dateappointment,使用this other question你貼出來,是因爲:在

Daily::Daily(string description, int month, int day, int year, int hour, int minute) : appointment(description, month, day, year, hour, minute), date(month, day, year) { ... } 

一般:

Date date; 
Appointment appointment; 

您可以使用此構造函數的語法定義如下:

A::A(...) : x(...), y(...), ... {...} 

x(...), y(...), ...初始化列表其目的是初始化類的成員的對象。

0

它應該是逗號分隔

Daily::Daily(string description, int month, int day, int year, int hour, int minute) : Appointment(description, month, day, year, hour, minute), Date(month, day, year) 
0

如果每日類有一個(日期),並有一個(約會),這meanse這是一個成分,那麼你必須使用初始化列表如下圖所示

Daily::Daily(string description, int month, int day, int year, int hour, int minute) : 
    Appointment(description, month, day, year, hour, minute), 
    Date(month, day, year) {} 

,但如果每天有(預約)僅-composition-和我所看到的約會有(日期)-composition-然後每日構造函數應該是這樣的

Daily::Daily(string description, int month, int day, int year, int hour, int minute) : 
    Appointment(description, month, day, year, hour, minute) {} 

和Appoiintment參數化構造函數將調用Date參數化構造函數

相關問題