我需要的可以通过将this
封闭类的指针存储到嵌套类中来完成,例如:
class CEnclosing {
public:
class CNested : public CSomeGeneric {
public:
CNested(CEnclosing* e) : m_e(e) {}
virtual void operator=(int i) { m_e->SomeMethod(i); }
CEnclosing* m_e;
};
CNested nested;
CEnclosing() : nested(this) {}
virtual void SomeMethod(int i);
};
int main()
{
CEnclosing e;
e.nested = 123;
return 0;
}
这很好用,但sizeof(void*)
每个嵌套成员类需要更多的内存字节。是否存在有效且可移植的方法来执行此操作,而无需存储指向 in 实例的CEnclosing
指针m_e
?