C++:通过数组创建的对象,但如何传递参数
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()
.
变量对象不是类的实例,而是一个数组。
所以你可以使用数组初始化,请查看下面的示例:
#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("%in", a[i]);
}
Class object[3] = {Class("Text1",10), Class("Text2",20), Class("Text3",30)};
for(int i=0; i<3; i++){
printf("%s %in", object[i].val1, object[i].val2);
}
return 0;
}
相关文章:
- 在不传递参数数量且只有3个点的情况下,如何使用变差函数
- 通过常量引用传递参数的矩阵模板类
- c++构造函数成员初始化:传递参数
- 通过引用传递参数时C++类型转换
- 如何从两个不同的函数传递参数
- 我在这里正确传递参数了吗?
- 在未显式传递参数时默认使用 lambda 的用户输入
- 通过引用传递参数;函数返回类型是否必须为 VOID?
- 如何在运算符的帮助下传递"=" C++参数
- 在C++中,有没有一种方法可以让我在不传递参数的情况下拥有一个函数
- 当我按值传递参数时对象被破坏时?
- 从 CMD 运行.exe并自动向其传递参数
- 传递参数时如何更新C++可选参数?
- 最佳做法是在方法中传递参数
- cuda 内核调用/传递参数中的编译错误
- 在构造函数上传递参数或在每个方法上传递参数
- 在可变参数模板中传递参数组
- 使用按名称调用传递参数
- C++ 在函数中传递参数会产生错误
- 在 lambda 中传递参数时无法调用指向成员的指针