如何为对象数组初始化连续内存空间 char* test3 = new char('a')[5]

时间:2022-09-15 19:45:34
假设有这样一段代码:


    char* test =new char[5];
    char* test2 =new char('a');
    //char* test3 = new char('a')[5];
    //char* test4 = new char[5]('a');


前两行是可以通过编译的,后两行却不行,

我想让在new数组的时候可以带参数,不知应该怎么写。

也许这样做很无聊,但是假设我有一个对象 class A(int parameter),这个问题就会变得更有意义一点。
我想写类似这样的:
A *array = new A[5](parameter);
应该怎么写呢?
parameter参数不知道放在哪里了。

4 个解决方案

#1


jiashe?

#2


C++不支持这种方式的,这是我的理解

楼下继续回答。。

#3


参考C++程序设计语言特别版(作者: [美] Bjarne Stroustrup 贝尔实验室 译: 裘宗燕 机械工业出版社)
P223 10.4.7 数组

    除了使用初始式列表之外,没有其它方式能为数组声明中的构造函数提供显示参数。

#4


3楼羽林郎 说得有理,感谢,我认为可以结贴。

#1


jiashe?

#2


C++不支持这种方式的,这是我的理解

楼下继续回答。。

#3


参考C++程序设计语言特别版(作者: [美] Bjarne Stroustrup 贝尔实验室 译: 裘宗燕 机械工业出版社)
P223 10.4.7 数组

    除了使用初始式列表之外,没有其它方式能为数组声明中的构造函数提供显示参数。

#4


3楼羽林郎 说得有理,感谢,我认为可以结贴。