C++:通过数组创建的对象,但如何传递参数

C++: Objects created via array, but how to pass parameters?

本文关键字:何传递 参数 对象 数组 创建 C++      更新时间:2023-10-16

如果你能在这里帮助我,那就太好了:我将对象创建为数组

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::vectorpush_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;
}