项目中用到了两个类,其中一个类嵌套在另一个类中,外部类命名为COuterClass,嵌套类命名为CInnerClass。在嵌套类中,有一个成员函数要用到外部类的一个成员函数。
要调用外部类的函数,首先要获取外部类的指针,所以需要在嵌套类中定义一个函数:GetOuterClass(),用来返回外部类的指针:
在GetOuterClass函数处理中,首先要获取嵌套类的某个实例在外部类中的偏移量,然后用内部类的this指针地址减去偏移量,获得的就是外部类的指针。
代码如下:
其中m_InnerClass是定义在外部类中的一个嵌套类的实例,OFFSET是该嵌套类的实例在外部类中的偏移量:
以下是完整的代码:
1>OuterClass.h:
2>OuterClass.cpp:
3>测试代码:
4>运行结果:
Inner Class Function was Called;
Outer Class Function was Called;
Press any key to continue;