不知道为什么我不能使用CDialog并在cpp文件中设置内存空间。它仅在头文件中起作用。这不是一回事吗???谢谢



头文件:

public:
    CDialog *m_pages[6];  // this works




头文件:

CDialog *m_pages;


cpp文件

m_pages = new CDialog[6];  //this fails




在看到我做错了之后(第一个海报:“创建六个指向CDialog的指针的数组”)。
这就是我想念的:(现在可以使用!)

CDialog **m_pages = new CDialog*[6]; //double pointer

最佳答案

检查documentation。 CDialogs在其构造函数中至少需要一个参数,这就是为什么您不能在第二个示例中分配它们的原因,因为它们没有默认的构造函数。

在第一个示例中,您将创建一个包含六个指向CDialog的指针的数组。这与六个CDialog的数组完全不同,这是您要在第二个数组中分配的。

09-06 09:47