现在的位置: 首页 > 综合 > 正文

在嵌套类中调用外部类的函数

2013年08月31日 ⁄ 综合 ⁄ 共 1779字 ⁄ 字号 评论关闭

项目中用到了两个类,其中一个类嵌套在另一个类中,外部类命名为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;

 

 

抱歉!评论已关闭.