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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用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;
     }
};

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

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

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

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

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

答案

使用完全限定的路径:

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

没有指针:

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

或者标记功能static并调用:

Outer::Inner::display();

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

以上是关于如何使用new()调用嵌套类中的方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 View 类中的代码片段移动到 OnAppearing() 方法?

嵌套类:如何访问封闭类中的成员变量

如何让片段中的多个视图调用片段类中声明的相同 onClick 函数?

如何从主要活动中调用片段方法

从Asynctask ONPostExecute调用片段方法

用于 PHP 的 JSON-RPC 2 客户端能够调用嵌套类中的方法