Я новичок в кодировании, и я пытаюсь понять, что случилось с этой программой:Перегрузка операторов наследование с классами
class Company:public Employee{
private:
std::vector<Employee*> _table;
public:
Company& operator+=(const Employee* emp) {
_table.push_back(emp->clone());
return *this;
}
virtual Company* clone() const {
return new Company(*this);
}
virtual Company& setDescription(std::string des){
_des=des;
return *this;
}
с этим в основной:
Company* company = new Company();
a = new DeveloperEmployee(description, project);
int id = a->getID();
cout << *a << endl; //Developer ID = 2, project = hw5
company += a;
и у меня есть эта ошибка:
error: invalid operands of types 'Company*' and 'DeveloperEmployee*' to binary 'operator+'|
Избегайте указатели и глупо наследование (компания-> сотрудник) –
Опубликованного сообщение об ошибке и помещаемого код не совпадает вверх. В отправленном коде нет вызова 'operator +'. –
@RSahu: есть. он не является явным, хотя. –