是否可以抑制部分默認的構造函數初始化?我現在的默認構造函數是這樣的:抑制默認構造函數的一部分?
Jd::Jd() {
time_t utcTime = time(NULL);
struct tm tmLocal;
localtime_s(&tmLocal, &utcTime);
jd_ = gregorian_to_jd(
tmLocal.tm_year + 1900,
tmLocal.tm_mon + 1,
tmLocal.tm_mday,
tmLocal.tm_hour,
tmLocal.tm_min,
tmLocal.tm_sec
);
}
,我使用兩個常量來初始化我JD對象:WTIMEOFDAY和NOTIMEOFDAY。
Jd const NOTIMEOFDAY;
Jd const WTIMEOFDAY;
我想NOTIMEOFDAY被初始化爲默認的構造的對象,但只有在gregorian_to_jd()方法,而不是整個事情的年,月,日部分。這可能嗎?
編輯:在JD類
Jd();
Jd(jdn_t jdn) : jd_(jdn) { } //Sets the internal datamember to whatever is passed in.
//Jd(bool includeTime);
和錯誤即時得到構造函數是:
error C2668: 'calendar::Jd::Jd' : ambiguous call to overloaded function
could be 'calendar::Jd::Jd(bool)
or 'calendar::Jd::Jd(calendar::jdn_t)
聽起來像創建一個構造函數來接受你想傳入的參數會做到這一點,但它有點不清楚你問什麼,因爲WTIMEOFDAY和NOTIMEOFDAY在你的示例代碼中沒有。 –
只需在調用'localtime()'(或將'gregorian_to_jd()'函數調用中的那些參數設置爲零)之後將'tm_hour','tm_min'和'tm_sec'設置爲零。 –