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

时间:2017-12-25 09:04:19

标签: c++ pointers nested instance

现在,我有一个嵌套类:

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时我可以做些什么来调用内部方法?

1 个答案:

答案 0 :(得分:0)

使用完全限定的路径:

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

没有指针:

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

或标记函数static并调用:

Outer::Inner::display();

话虽如此,因为它更适合于(Outer)命名空间而不是类。