私の質問は、新しい C++11 機能の委任コンストラクターについてです。私のクラスには2つの同様の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から2番目のctorを正しく呼び出す方法を知っている人はいますか?