我有一个抽象类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);
。
答案 0 :(得分:1)
应该是:
function bouncer(arr) {
return arr.filter(Boolean);
}