如果是嵌套类,我如何访问"内部";或";"孩子";类的成员函数?。例如,我创建";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();
这些是独立的类,没有任何子类的自动提示,反之亦然。