Как передать в функцию вектор класса наследника, если функция принимает вектор базового класса?
Я пыталась написать функцию, которая принимает вектор базового класса, а в функции main хотела использовать именно вектор класса-наследника базового класса, упомянутого выше:
#include <iostream>
#include <vector>
using namespace std;
class Base{
}
class Derived: public Base{
}
void function(vector<Base>& B){
}
int main(){
vector<Derived> derivedVector;
function(derivedVector);
return 0;
}
Однако программа выдает следующую ошибку:
"void function(std::vector<Base,std::allocator<Base>> &)": невозможно преобразовать аргумент 1 из "std::vector<Derived,std::allocator<Derived>>" в "std::vector<Base,std::allocator<Base>> &"
а также:
не удается инициализировать ссылку типа "std::vector<Base, std::allocator<Base>> &" (квалифицируется как неконстантная) со значением типа "std::vector<Derived, std::allocator<Derived>>"
Я знаю, что указатель базового класса может принимать ссылку на класс-наследник, но в этом случае выходит ошибка. Может я сделала какую-то синтаксическую ошибку?