は、次のように私は、ヘッダファイルで定義されたクラスを入れ子にしていると仮定します。関数に定義を与えるために短縮メンバ関数スコープ指定子(インナークラス)(C++)
class ClassA
{
private:
class ClassB
{
private:
int member_b;
public:
void function_name();
};
};
「FUNCTION_NAME()」で外部.cppファイル、私はこのようにアクセスする必要があります:私は、ネストされたクラスを使用していますなぜ、この例のために
void ClassA::ClassB::function_name()
{
std::cout << member_b;
return;
}
、聞かないでください。私は実際のプロジェクトでこれを行う理由があります。しかし、私の質問はこれです。 ClassA::ClassB::function_name()
のように実装ファイル内に何らかの形でshort::function_name()
のように入れ子にしておくことは可能ですか? typedefsや新しい名前空間の定義が私を助けてくれるとは思えませんが、おそらく私は間違っています。
ここでtypedefを使用することができます。私の答えを参照してください。それが役に立てば幸い。 –
私は言及すべきではありますが、私の例のようにClassBは依然として私的である必要があります。 typedefの使用は、ClassBが公開されていないと動作しないようです。これを達成する他の方法はありますか? – JohnTravolski