gpt4 book ai didi

c++ - 初始化列表中的类对象数组

转载 作者:行者123 更新时间:2023-11-28 02:16:59 25 4
gpt4 key购买 nike

Car是一个模板类,其构造函数定义如下:

template <class carObject>
explicit Car( const carObject & notFound, int size = 101 );
Car( const carObject & rhs )

在我的头文件 (h) 中,我有:

class Storage{
public:
Storage();
Car <char*> myCars[12];
};

在我的 CPP 文件 (.cpp) 中,我尝试使用初始化列表初始化 myCars 数组,如下所示:

Storage::Storage()
: myCars("notFound", 20)
{ //my other stuff}

但我不断收到错误消息:

error: invalid initializer for array member Car:myCars("notFound", 20)

有什么帮助吗?

最佳答案

你的数组需要 12 个初始化器,比如

Live On Coliru

template <typename T> struct Car {
template <class carObject> explicit Car(const carObject &notFound, int size = 101) {}
};

struct Storage {
Storage()
: myCars{
Car<char *>{ "notFound", 20 }, Car<char *>{ "notFound", 20 }, Car<char *>{ "notFound", 20 },
Car<char *>{ "notFound", 20 }, Car<char *>{ "notFound", 20 }, Car<char *>{ "notFound", 20 },
Car<char *>{ "notFound", 20 }, Car<char *>{ "notFound", 20 }, Car<char *>{ "notFound", 20 },
Car<char *>{ "notFound", 20 }, Car<char *>{ "notFound", 20 }, Car<char *>{ "notFound", 20 },
} {}
Car<char *> myCars[12];
};

int main(){}

当然,如果元素类型是可默认构造的,您可以省略一些初始化器。但是初始化器的结构需要匹配这个结构

关于c++ - 初始化列表中的类对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33751780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com