是否可以抑制部分默认构造函数初始化?我当前的默认构造函数如下所示:
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)