我的问题是关于新的 C++11 特性委托构造函数。因此,我的班级中有两个相似的 ctor,我想简化它们的实现。它们都有结构作为参数的问题,当我尝试委托它们时,发生编译器错误:
error: type ‘MyClass’ is not a direct base of ‘MyClass’
所以这里是之前:
MyClass::MyClass ( const timeval & TV ) :
Seconds ( TV.tv_sec),
USeconds ( TV.tv_usec ),
{
}
MyClass::MyClass ( const timespec & TS ) :
Seconds ( TS.tv_sec),
USeconds ( TS.tv_nsec * 1000 ),
{
}
后:
MyClass::MyClass ( const timeval & TV ) :
MyClass ( timeval { TV.tv_sec, TV.tv_usec/1000 } )
{
}
MyClass::MyClass ( const timespec & TS ) :
Seconds ( TS.tv_sec),
USeconds ( TS.tv_nsec * 1000 ),
{
}
有谁知道我怎样才能正确地从第一个 ctor 中调用第二个 ctor?