gpt4 book ai didi

c++ - CDialog *m_pages[6]; vs CDialog *m_pages = new CDialog[6];?

转载 作者:太空宇宙 更新时间:2023-11-04 16:28:01 25 4
gpt4 key购买 nike

不知道为什么我不能使用 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 的数组完全不同,后者是您试图在第二个中分配的内容。

关于c++ - CDialog *m_pages[6]; vs CDialog *m_pages = new CDialog[6];?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com