C++相談室 part19
■ このスレッドは過去ログ倉庫に格納されています
0614デフォルトの名無しさん
NGNGVC++で
class BaseA{ virtual void Hoge() = 0; };
class BaseB{ virtual void Hoge() = 0; };
__interface BaseC{ virtual void Hoge() = 0; };
class Derived : public BaseA, public BaseB, public BaseC
{
virtual void BaseA::Hoge(){} // 出来る
virtual void BaseB::Hoge();
virtual void BaseC::Hoge();
};
void Derived::BaseB::Hoge(){} // 出来ない、error C2509 'Hoge' が宣言されていません。
void Derived::BaseC::Hoge(){} // 出来る
という風に、クラスの外で定義しようとするとエラーになります。
MS独自の__interfaceなら可能ですが、メンバを持てないので今回の場合使えません。
インラインにして別のメンバ関数にリダイレクトするなど回避方法が無いわけではないのですが、どうにも納得いかないので、もしどなたか解決方法をご存知でしたら教えてください。
■ このスレッドは過去ログ倉庫に格納されています