ネストされたクラスのメンバ関数のinline定義

解決


michi  2007-12-09 22:48:02  No: 67175

よろしくお願いします。

下記のコードにおいて 1番と3番のコードは許してくれるのですが2番のコードはコンパイラに叱られてしまいます。なんとか2番の表記を実現させる方法ってありませんか?

class ClassA
{
  class ClassB
  {
    ClassB();
    //ClassB(){}    1番
  };
  //inline ClassB::ClassB(){}    2番
};

//inline ClassA::ClassB::ClassB(){}    3番

開発ツール:VisualC++2005ExpressEdition


michi  2007-12-09 23:22:29  No: 67176

すいません、エラーの内容を載せ忘れました。

error C3254: 'ClassA' : class contains explicit override '{ctor}' but does not derive from an interface that contains the function declaration

C3254
http://msdn2.microsoft.com/ja-jp/library/d3a2e8yw(VS.80).aspx

2番のコードは非inlineにしてもinlineと同じエラーが出ます。
エラーを見る限り、1番の表記以外のの方法ではClassA内でClassBのコンストラクタを定義する権限が無い...?みたいな感じに思えるのですが、どなたか教えてください。


επιστημη  2007-12-10 06:43:05  No: 67177

無理ポ。
そこは定義を書くとこじゃないから。


michi  2007-12-10 07:26:49  No: 67178

う〜ん、そうなんですか...残念です。
επιστημηさんありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加