如何初始化没有默认构造器的对象的成员数组?
How can I initialise a member array of objects that don't have a default constuctor?
我想知道是否有人能告诉我如何初始化对象的成员数组,在对象没有默认构造函数(即需要参数)的情况下。
例如:
class Foo
{
public:
Foo() :
memberArray{bar(1), bar(3), bar(2)} // **The compiler doesnt like this**
{}
private:
Bar memberArray[3];
};
struct Bar
{
Bar(std::int32_t param1) { }
}
我正在使用GCC 4.6.1,并编译为c++11。有人能指出我错在哪里吗?(顺便说一句。请不要建议动态分配内存,因为我没有…)
你有几个问题:不一致的大小写,在声明之前使用,缺少分号,缺少include。这更接近了:
struct Bar
{
Bar(int param1) { }
};
class Foo
{
public:
Foo() :
memberArray{Bar(1), Bar(3), Bar(2)}
{}
private:
Bar memberArray[3];
};
相关文章:
- 指向设备对象成员的指针
- 访问由unique_ptr传递的对象成员
- 引用对象成员函数的成员函数
- 将 C# 对象(包含静态对象成员)作为参数传递给 C++/CLI 程序
- Lua C API - 从C++分配和使用类的对象成员
- Rapidjson 遍历并获取复杂 JSON 对象成员的值
- 类对象成员变量在调用函数时不会更改
- 对象成员变量还是继承
- C++多态性:有没有办法找到对象成员函数的地址?
- 重载对象成员的比较运算符
- 获取未初始化对象成员的地址是否定义良好?
- 在优先级队列被推送到队列后,如何编辑对象成员
- 为什么在这里调用析构函数,以及在调用该对象析构函数后如何调用对象成员函数?
- 通过 std::bind 从对象成员检索值
- 保留对象成员变量的本地副本
- 有没有办法为静态对象成员定义一个符合开关标准的常量?
- 没有默认构造函数的对象成员的 wig setter
- 对象成员数组C++默认初始化
- 如何在数组中添加对象成员
- 使用聚合创建和关联两个不同的对象成员