如何使用new()调用嵌套类中的方法?

问题描述 投票:-1回答:1

现在,我有一个嵌套类,如下所示:

class Outer{

public:
    class Inner{

    public:
        void display(){
             cout << "You are in inner class" << endl;
        }
     };
     void display(){
         cout << "You are in outer class" << endl;
     }
};

我必须创建每个类OuterInner的实例,以便我可以调用他们的每个display()方法。我必须使用new来调用它们作为我的要求的一部分。我可以调用Outer类,并指向它的方法如下:

Outer *pOuter = new Outer();
pOuter->display();

但是,我在为Inner课做同样的麻烦。我试过了:

 Outer:Inner *pInner = new Outer:Inner();
 pInner->display();

但是,这不起作用。所以我想知道在使用new时我可以做些什么来调用内部方法?

c++ pointers nested instance
1个回答
0
投票

使用完全限定的路径:

Outer::Inner* p = new Outer::Inner;
p->display();
delete p;

没有指针:

Outer::Inner o;
o.display();

或者标记功能static并调用:

Outer::Inner::display();

话虽这么说,因为它更适合(Outer)命名空间而不是类。

© www.soinside.com 2019 - 2024. All rights reserved.