【发布时间】:2017-04-10 18:02:21
【问题描述】:
我有一个基类:
class Member
{
....
}
还有一个派生类,像这样:
class Mine_sweeper : private Member
{
....
}
然后我有一个容器:
class Population
{
public:
std::vector<Member>& m_members;
Population(std::vector<Member>& members);
}
当我将 Population 的构造函数与成员向量一起使用时,它可以编译。但是,如果我尝试将 Population 的 m_members 与 Mine_sweepers 的向量联系起来,编译器会抛出错误。
std::vector<Member> members;
Population pop(members); // this compiles OK
std::vector<Mine_sweeper> sweepers;
Population pop(sweepers); // but here I get an error
main.cpp(23): error C2664: 'Population::Population(std::vector &)' : 无法将参数 1 从 'std::vector' 转换为 'std::vector &'
【问题讨论】:
标签: c++ polymorphism