求讲授,对象数组 传参构造函数 的实现方式。若附简短代码则不甚感激
求讲解,对象数组 传参构造函数 的实现方式。。若附简短代码则不甚感激。大牛们好!请问 如果我是要 在类里面
求讲解,对象数组 传参构造函数 的实现方式。。若附简短代码则不甚感激。
大牛们好!
请问 如果我是要 在类里面 动态创建另一个类的对象数组,该怎么写构造函数?
貌似不能 批量构造啊, new Gene[5](N);这种形式电脑不忍认啊。。。
ToT...我是刚开始模仿C++,是新手,求大牛指导。。。
C++ 对象 构造 动态创建 传参
[解决办法]
可以使用 c++11 里面的 list initialization,像这样。
#include <iostream>
struct test_t
{
test_t () { std::cout << 0 << std::endl; }
test_t (int) { std::cout << 1 << std::endl; }
test_t (double) { std::cout << 2 << std::endl; }
test_t (char) { std::cout << 3 << std::endl; }
test_t (size_t) { std::cout << 4 << std::endl; }
};
int main ()
{
delete [] new test_t [5] {{},1,2.0,'3',size_t(4)};
}
输出应该是 0 1 2 3 4,可以看到会调用最匹配的构造函数,并且对象都是直接构造的。
[解决办法]数组确实不能这样
一定在构造的时候,确定对象的状态? 如果,为了效率的话,可以参考下placement new 的用法。
[解决办法]不行,编译器不支持 list initialization 的话,new [] 后面的 { 会识别为语法错误,这种情况下,可以考虑用 #3 的 workaround.