首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类数组的C++动态分配

类数组的C++动态分配
EN

Stack Overflow用户
提问于 2015-10-22 14:36:42
回答 2查看 3.8K关注 0票数 5

假设class X具有构造函数X(int a, int b)

我创建一个指向X的指针,作为X *ptr;来动态地为类分配内存。

现在要创建X类对象的数组

代码语言:javascript
运行
复制
 ptr = new X[sizeOfArray];

到现在为止一切都很好。但是我想要做的是创建上面的对象数组,应该调用构造函数X(int a, int b)。我试了如下:

代码语言:javascript
运行
复制
ptr = new X(1,2)[sizeOfArray]; 

正如预期的那样,它给了我编译时的错误。

错误:预期的';‘在’之前'[‘令牌\\’

如何创建一个对象数组来调用构造函数?

用户在运行时输入SizeOfArray

编辑:,我想要达到的,在不可能的回答,天顶,或将是太复杂。那么,我如何使用std::vector来实现相同的功能呢?

EN

回答 2

Stack Overflow用户

发布于 2015-10-22 14:51:32

在当前的C++标准中,这是不可能的,除非:

  • 为每个元素提供一个初始化程序,或者
  • 您使用的是vector

请参见:

票数 4
EN

Stack Overflow用户

发布于 2015-10-22 15:34:09

您不会说sizeOfArray是变量还是常量。如果它是一个(小)常量,您可以在C++11中这样做:

代码语言:javascript
运行
复制
X* ptr = new X[3] { {1,2}, {1,2}, {1,2} };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33283664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档