请教关于new和对象指针及this的问题..C/C++ code// 公共基类class CWindow{public:CWindow(CWindow* pPare
请教关于new和对象指针及this的问题..
- C/C++ code
// 公共基类class CWindow{public: CWindow(CWindow* pParent=NULL); virtual ~CWindow(); virtual void SetParent(CWindow* pParent); protected: CWindow* m_pParent;};void CWindow::SetParent(CWindow* pParent){ m_pParent = pParent; if (pParent) { pParent->AddWindow(this); }}// 派生类CCheckBoxCTLclass CCheckBoxCTL : public CWindow{public: CCheckBoxCTL(CWindow* pParent=NULL); virtual ~CCheckBoxCTL();};// 派生类CBoxGroupclass CBoxGroup : public CWindow{public: CBoxGroup(CWindow* pParent=NULL); virtual ~CBoxGroup(); virtual bool LoadFromIni(char* pFileName, int groupIndex);protected: CCheckBoxCTL* m_pCheckBoxCTL; int m_BoxNum;};bool CBoxGroup::LoadFromIni(char* pFileName, int groupIndex){ m_pCheckBoxCTL = new CCheckBoxCTL[m_BoxNum]; if (!m_pCheckBoxCTL) return false; // m_pParent在构造函数中已初始化 for (int i=0; i<m_BoxNum; i++) { m_pCheckBoxCTL[i]->SetParent(m_pParent); } return true;}请问最后那个CBoxGroup::LoadFromIni()里写的这句:m_pCheckBoxCTL[i]->SetParent(m_pParent);
SetParent()函数里 this指的什么??是m_pCheckBoxCTL[i]的地址,还是m_pCheckBoxCTL[i]对象本身??
这样写有没有问题????
我的运行结果是,当销毁这个new出的内存块的时候,程序非正常终止。
(我把CCheckBoxCTL* m_pCheckBoxCTL;换成数组方式:CCheckBoxCTL* m_pCheckBoxCTL[3],测试运行正常,可以解决,但是我不知道为什么我那样不可以。不知道原因何在。)
[解决办法]
请问最后那个CBoxGroup::LoadFromIni()里写的这句:m_pCheckBoxCTL[i]->SetParent(m_pParent);
SetParent()函数里 this指的什么??是m_pCheckBoxCTL[i]的地址,还是m_pCheckBoxCTL[i]对象本身??
this保存的是m_pCheckBoxCTL[i]这个对象的地址。
[解决办法]
m_pCheckBoxCTL[i]->SetParent(&m_pCheckBoxCTL[i]->);//是否应该是这样呢
[解决办法]
m_pCheckBoxCTL[i].SetParent(&m_pCheckBoxCTL[i]->);//上面搞错了,应该是这样
[解决办法]
我 也想知道
[解决办法]
我是来接分的
[解决办法]
