通过数组和"new"运算符创建的对象,但如何传递参数?
Objects created via array and 'new'-operator, but how to pass parameters?
很好,你正在看看我的问题,我很难将参数传递给由"new"创建并存储为数组的对象。我知道
Class object[2] = {Class{2, "text"},Class{5, "otherText"}}
没有"新"是可能的。我想做的是像
pClass = new Class[2]{Class{2,"text"},Class{5,"otherText"}}
下面的一些代码:
class AnotherClass{
int val1;
string str1;
public:
//some code
};
class Class{
AnotherClass *pToAnotherClass;
//some more variables
public:
Class(){ pToAnotherClass = new AnotherClass[5]};
//some more code
};
main{
Class object;
return 0;
}
通常最好使用 std::vector
而不是 C 样式数组来保存对象。这允许使用 emplace_back
初始化;例如,然后你可以做
Class()
: v()
{
v.reserve(5);
for (size_t i = 0; i < 5; ++i)
{
v.emplace_back(val[i], str[i]);
}
}
std::vector<AnotherClass> v;
其中val
和str
是初始化v
中各个对象所需的一些值数组。
相关文章:
- 在不传递参数数量且只有3个点的情况下,如何使用变差函数
- 通过常量引用传递参数的矩阵模板类
- c++构造函数成员初始化:传递参数
- 通过引用传递参数时C++类型转换
- 如何从两个不同的函数传递参数
- 我在这里正确传递参数了吗?
- 在未显式传递参数时默认使用 lambda 的用户输入
- 通过引用传递参数;函数返回类型是否必须为 VOID?
- 如何在运算符的帮助下传递"=" C++参数
- 在C++中,有没有一种方法可以让我在不传递参数的情况下拥有一个函数
- 当我按值传递参数时对象被破坏时?
- 从 CMD 运行.exe并自动向其传递参数
- 传递参数时如何更新C++可选参数?
- 最佳做法是在方法中传递参数
- cuda 内核调用/传递参数中的编译错误
- 在构造函数上传递参数或在每个方法上传递参数
- 在可变参数模板中传递参数组
- 使用按名称调用传递参数
- C++ 在函数中传递参数会产生错误
- 在 lambda 中传递参数时无法调用指向成员的指针