请教new开辟的对象数组的使用问题。。
- C/C++ code
void CWindow::SetParent(CWindow* pParent){ m_pParent = pParent; if (pParent) { pParent->AddWindow(this); }}CWindow* m_pCheckBoxCTL = NULL;m_pCheckBoxCTL = new CCheckBoxCTL[m_BoxNum];for (int i=0; i<m_BoxNum; i++){ m_pCheckBoxCTL[i]->SetParent(m_pParent);}m_pCheckBoxCTL = new CCheckBoxCTL[m_BoxNum];
m_pCheckBoxCTL[i]->SetParent(m_pParent);
这两条语句写法有没有问题 ??
我测试总是非正常终止,只有把m_pCheckBoxCTL写成指针数组才正确运行:CWindow* m_pCheckBoxCTL[3];
[解决办法]
CWindow* m_pCheckBoxCTL = NULL;
这一句,是在函数中定义的,还是在类定义体中定义的?
这里需要一个成员变量。
另外,我现在比较迷糊,我怎么看都觉得这里:
m_pCheckBoxCTL[i]->SetParent(m_pParent);
应该改成:
m_pCheckBoxCTL[i].SetParent(m_pParent);
[解决办法]
CWindow* m_pCheckBoxCTL[3];和CWindow* m_pCheckBoxCTL = NULL;
不一样啊;
写成这样看看
m_pCheckBoxCTL[i].SetParent(m_pParent);
[解决办法]
你代码能编译过去吗,m_pCheckBoxCTL[i]->SetParent(m_pParent)这里不对啊
应该是用m_pCheckBoxCTL[i].SetParent(m_pParent)
[解决办法]
.符号就是用来引用类和结构成员的。
只有当是指向类或结构的指针时才用->符号引用成员。
[解决办法]