这是一个简单的问题...给了我一个带有显式构造函数的对象,我想在另一个构造函数中初始化它们的数组。这样做的语法是什么?
老实说,我一直在努力解决问题……而且我是一位经验丰富的C ++开发人员,这很尴尬!
class TestObj {
public:
explicit TestObj(int i) {}
TestObj(const TestObj&) = delete;
TestObj& operator=(const TestObj&) = delete;
};
class AnotherObj {
public:
// error: converting to ‘TestObj’ from initializer list would use explicit constructor ‘TestObj::TestObj(int)’
AnotherObj(int i) : objs{{1}, {i}} {}
// error: could not convert ‘i’ from ‘int’ to ‘TestObj’
AnotherObj(int i, int j) : objs{i, j} {}
// error: use of deleted function ‘TestObj::TestObj(const TestObj&)’
AnotherObj(int i, int j, int k) : objs{TestObj{i}, TestObj{j}} {}
protected:
TestObj objs[2];
};