Я пытаюсь сделать оператора, который позволит мне добавить целое число в один из моих классов, но у меня возникают проблемы следующим образом.Перегрузка двоичных операторов и полиморфизм
struct Base
{
//Will have value of zero
};
struct Derived : public Base
{
int value_;
};
int & operator+=(int & num, Base & b);
int & operator+=(int & num, Derived & d);
С внедрением операторной
int & operator+=(int & num, Base & b)
{
return num;
}
int & operator+=(int & num, Derived & d)
{
num += d.value_;
return num;
}
Так у меня есть вектор, и я пытаюсь итерацию через него и добавить все значения для одного целого. Однако даже те, которые имеют тип Derived, не изменят сумму.
Как я могу заставить оператора перегружать полиморфные?
Существует какой-то смешной запах вокруг всей идеи, но, во всяком случае, вы должны указать определение своего * vector *. Первая потенциальная проблема заключается в том, что все ваши объекты были нарезаны на «Base» ... –