我一个类a,而且保证是被b类的对象所实体化调用的。
我如何在a类中保存b类对象的指针

解决方案 »

  1.   

    照搂主说的“类a,而且保证是被b类的对象所实体化调用的”那么可以将类a定义为类b的内嵌类,那么在类a中就可以通过使用固定的偏移值来计算类b对象的this指针。
    class B
    {
        class A
        {
            inline B* This()
            {
                 return (B*)((BYTE*)this - offsetof(B, m_a));
            }
        } m_a;
    };
    宏offsetof用于计算成员变量在一个类中的偏移值.
      

  2.   

    在类A中增加类B的指针,同时在类B中增加类A的指针。可用如下的方法。
    class A;
    class B{A* a;};
    class A
    {B* b;};