class Road {
private:
std::vector<Vehicle*> container;
public:
std::vector<Vehicle*> getContainer(){
return container;
}
virtual void operator+(Vehicle *vehicle)=0;
};
class Highway: public Road {
public:
virtual void operator+(Vehicle *vehicle) {
getContainer().push_back(vehicle);
}
};
Почему возникает ошибка, по которой я не могу выделить объект абстрактного типа, когда все мои виртуальные функции переопределены? Это происходит, когда я пытаюсь позвонить Road r = Highway();
в мой основной класс.Ошибка при попытке определить объект типа класса, который получен из абстрактного класса
'getContainer' должен возвращать ссылку на' container' переменной-члена. В вашем коде каждый раз, когда вы вызываете 'getContainer()', вы возвращаете копию переменной 'container'. – MRB
@cokceken: Нет, не следует. –
_ «Это происходит, когда я пытаюсь вызвать« Road r = Highway(); 'в моем основном классе». _ Какова ваша цель с этой строкой кода? Что вы пытаетесь сделать? Только зная, что мы можем сказать вам, как это исправить. –