我有一个模板类,里面有一个嵌套类。我的问题是如何使嵌套类具有对它嵌套在其中的类的引用?
例如,下一个数组类
template< typename TYPE >
class Array
{
private:
class ArrayProxy
{
public:
ArrayProxy( Array< TYPE >& arrayObject, UnsignedInteger64bits entryIndex );
private:
Array< TYPE >& m_arrayObject;
UnsignedInteger64bits m_entryIndex;
};
};
现在要构造ArrayProxy对象,下一个调用将在类Array的某个方法中使用:
ArrayProxy Array< TYPE >::DoSomething()
{
return ( ArrayProxy( *this, entryIndex ) );
}
这不会编译。
我的混淆开始于隐式this指针发生了什么,因为嵌套的ArrayProxy应该具有相同的外部类的位置没有?并且嵌套类的数据成员是否使总类数据更大,或者只是创建了嵌套类的实例?