-1
は今のところ、私はそう入れ子になったクラスを持っている:new()を使ってネストしたクラス内のメソッドを呼び出す方法はありますか?
class Outer{
public:
class Inner{
public:
void display(){
cout << "You are in inner class" << endl;
}
};
void display(){
cout << "You are in outer class" << endl;
}
};
私はので、私は彼らのdisplay()
の各メソッドを呼び出すことができ、各クラスOuter
とInner
のインスタンスを作成する必要があります。私は、私の要件の一部としてそれらを呼び出すためにnew
を使用する必要があります。私はInner
クラスに同じことをやってトラブルを抱えている、
Outer *pOuter = new Outer();
pOuter->display();
しかし、私はそうとその方法にOuter
クラスの罰金とポイントを呼び出すことができます。私は試しました:
Outer:Inner *pInner = new Outer:Inner();
pInner->display();
しかし、それは動作しません。だから私はnew
を使用しているときに私は内部のメソッドを呼び出すために何ができるのだろうか?ポインタなし
Outer::Inner* p = new Outer::Inner;
p->display();
delete p;
:
'Inner'の完全修飾名は' Outer :: Inner'です。そして、「pOuter:Inner」はばかげている。 – StoryTeller
_これはうまくいきません。 –
用語についてちょっとした点があります。Javaには、C++がサポートしていない特別な意味を持つ外部クラスと内部クラスがあります。タイトルのように、C++の最善の用語は**ネストされたクラスです**。 –