-
-
[求助]CProcessLocal类的疑问
-
发表于:
2012-11-5 09:57
5166
-
小弟在跟踪MFC的框架时,遇到了问题 先把CProcessLocal类粘贴在下面:
template<class TYPE>
class CProcessLocal : public CProcessLocalObject
{
// Attributes
public:
AFX_INLINE TYPE* GetData()
{
TYPE* pData = (TYPE*)CProcessLocalObject::GetData(&CreateObject);
ASSERT(pData != NULL);
return pData;
}
AFX_INLINE TYPE* GetDataNA()
{ return (TYPE*)m_pObject; }
AFX_INLINE operator TYPE*()
{ return GetData(); }
AFX_INLINE TYPE* operator->()
{ return GetData(); }
// Implementation
public:
static CNoTrackObject* AFXAPI CreateObject()
{ return new TYPE; }
};
全局的AfxGetModuleState函数里调用了这一句: _AFX_THREAD_STATE*pState = _afxThreadState; 而_afxThreadState就是
CProcessLocal模板类的一个实例对象 当我F11跟进时,为什么会来到这一句:
AFX_INLINE TYPE* operator->()
{ return GetData(); } 按理说应该进入这个类的构造函数,可是这里没有看到它的构造函数,却进入了这个操作符重载函数,请前辈为我解惑
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!