现在,我有一个嵌套类:
class Outer{
public:
class Inner{
public:
void display(){
cout << "You are in inner class" << endl;
}
};
void display(){
cout << "You are in outer class" << endl;
}
};
我必须创建每个类Outer
和Inner
的实例,以便我可以调用每个display()
方法。我必须使用new
来调用它们作为我的要求的一部分。我可以调用Outer
类,并指向它的方法:
Outer *pOuter = new Outer();
pOuter->display();
但是,我在为Inner
班级做同样的事情时遇到了麻烦。我试过了:
Outer:Inner *pInner = new Outer:Inner();
pInner->display();
但是,这不起作用。所以我想知道在使用new
时我可以做些什么来调用内部方法?
答案 0 :(得分:0)
使用完全限定的路径:
Outer::Inner* p = new Outer::Inner;
p->display();
delete p;
没有指针:
Outer::Inner o;
o.display();
或标记函数static
并调用:
Outer::Inner::display();
话虽如此,因为它更适合于(Outer
)命名空间而不是类。