我有一个类,其中包含指向没有默认构造函数的对象的作用域指针数组。
我找到的唯一初始化它们的方法是使用 swap()
,像这样:
class Bar {
Bar(char * message) {};
}
class Foo
{
boost::scoped_ptr<Bar> arr[2];
Foo()
{
arr[0].swap(boost::scoped_ptr<Bar>( new Bar("ABC") ));
arr[1].swap(boost::scoped_ptr<Bar>( new Bar("DEF") ));
};
}
这感觉有些啰嗦和笨重。我错过了更聪明的做法吗?