如何在另一个构造函数中调用对象构造函数?

时间:2017-01-27 13:22:32

标签: c++ c++11 constructor

我有一个抽象类A和一个带有构造函数的类B

B(A &a) {...}

现在,我在主程序中创建这些对象,如下所示:

int main(){
  std::unique_ptr<A> a = make_A();//don't mind make_A()
  if(a==null)
    a = make_default_A();
  B b (*a); 
}

现在我创建了一个设置系统的类:

class System{
public:
  System();
private:
  B b;
  std::unique_ptr<A> a;
}

构造函数是:

System(){
  a = make_A();
  if(a==null)
    a = make_default_A();
  b(*a);
}

显然这是错误的,因为我无法像上面的代码那样调用B的构造函数,但我无法弄清楚如何执行此操作。我想到的唯一解决方案是使用std::unique_ptr<B> b;代替B b;,然后拨打b = make<B> (*a);

1 个答案:

答案 0 :(得分:1)

应该是:

function bouncer(arr) {
    return arr.filter(Boolean);
}