[英]C++: Objects created via array, but how to pass parameters?
如果你能在这里帮助我会很棒:我将对象创建为数组
Class object[3];
但我不知道如何通过这种方式创建对象来传递参数。 如果只创建一个对象,代码将如下所示:
Class object("Text", val);
其余的由构造函数管理。 提前感谢您的想法!
在C ++ 98中:
Class object[3] = {Class("Text1", val1), Class("Text2", val2), Class("Text3", val3)};
但是这要求Class
是可复制构造的。
在C ++ 11中,它更简单,更重要的是,不要求Class
可以复制构造:
Class object[3] = {{"Text1", val1}, {"Text2", val2}, {"Text3", val3}};
如果你有多个对象,最好使用std::vector
和push_back() / emplace_back()
。
变量对象不是Class的实例而是数组。
所以你可以使用数组初始化,请看下面的示例:
#include "stdafx.h"
using namespace std;
class Class {
public:
std::string val2;
int val2;
Class(std::string val1, int param2){
val1 = param1;
val2 = param2;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
int a[3] = {1, 2, 3};
for(int i=0; i<3; i++){
printf("%i\n", a[i]);
}
Class object[3] = {Class("Text1",10), Class("Text2",20), Class("Text3",30)};
for(int i=0; i<3; i++){
printf("%s %i\n", object[i].val1, object[i].val2);
}
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.