デフォルトのコンストラクターの初期化の一部を抑制することは可能ですか? 現在のデフォルト コンストラクタは次のようになります。
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 オブジェクトを初期化するために 2 つの定数を使用しています。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)