访问CPP中的嵌套类成员函数



如果是嵌套类,我如何访问"内部";或";"孩子";类的成员函数?。例如,我创建";obj1";。现在我如何访问";childPrint(("用";obj1";?

示例代码:

#include<iostream>
using namespace std;
/////////////////////////////////////////////////
class Parent
{
public:
void print()
{
cout<<"this is from Parent"<<endl;
}
class Child
{
public:
void childPrint()
{
cout<<"this is from Child"<<endl;
}
};
};

int main()
{
Parent obj1;
obj1.print();
Parent::Child obj2;
obj2.childPrint();
obj1.Child::childPrint();///ERROR

return 0;
}

现在我如何访问;childPrint(("用";obj1";?

你不能。

obj1属于Parent类型,它不包含任何称为childPrint的方法。Parent的实例不会自动包含Child的实例(我认为Java会这样做(,它们仍然是独立的类。只能在Child的实例上调用此方法。

obj1.Child::childPrint();

在这一行中,您需要了解childPrint()class Child的实例成员函数。因此,只有class Child实例才能调用childPrint()函数。

如果childPrint()函数是class Child的静态成员函数(类函数(,则可以在不创建任何实例的情况下调用它,并且Parent::Child::childPrint();中不会显示错误。

如果你有一个静态方法,那么你可以用调用它

/////////////////////////////////////////////////
class Parent
{
public:
...
class Child
{
public:
static void childPrint() { cout<<"this is from Child"<<endl; };
}
}
...
Parent::Child::childPrint();

这些是独立的类,没有任何子类的自动提示,反之亦然。

相关内容

  • 没有找到相关文章

最新更新