我正在学习类继承,并且正在努力找出一个小问题。我有两节课
class OrderList {
private:
std::vector<AbstractClass*> elements;
public:
OrderList(const std::vector<AbstractClass*>& list){
// for (auto &i : list)
// elements.push_back(i);
}
OrderList(const OrderList& ol);
OrderList& operator=(const OrderList&);
virtual ~OrderList(){};
};
class DerivedOrderList : public OrderList {
DerivedOrderList(std::vector<AbstractClass*>& list) : OrderList(list){}
DerivedOrderList(const DerivedOrderList&);
DerivedOrderList& operator=(const DerivedOrderList&);
virtual ~DerivedOrderList(){};
};
然后,我的主要功能按如下方式调用DerivedOrderList:
DerivedOrderList myOrderList = DerivedOrderList(myVector);
我收到一个错误:没有与参数匹配的构造函数“ DerivedOrderList :: DerivedOrderList”的实例
是什么原因造成的?
最佳答案
DerivedOrderList中的构造方法必须是公共的。
编辑:另请参阅NathanOliver的评论和Rob K关于myVector类型的答案。