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

[Visual C++ Q & A 掲示板] [過去ログの一覧]


michi 2007/12/09(日) 13:48:02 <中級者>
よろしくお願いします。

下記のコードにおいて 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(日) 14:22:29 <中級者>
すいません、エラーの内容を載せ忘れました。

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/09(日) 21:43:05
無理ポ。
そこは定義を書くとこじゃないから。

michi 2007/12/09(日) 22:26:49 <中級者>
[[解決]]

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

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library