Я намагаюся зробити оператора, який дозволить мені додати ціле число до одного зі своїх класів, але у мене виникають проблеми наступним чином.
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;
}
Отже, у мене є вектор, і я намагаюся перебрати його і додати всі значення до одного цілого числа. Однак навіть ті, які є похідними типу, не змінять суму.
Як я можу зробити оператора перевантаження поліморфним?
Відповіді:
0 для відповіді № 1Ось приємний д-р. стаття dobbs, яка представляє 3 рішення вашої проблеми http://drdobbs.com/cpp/200001978 Одне з них, і я думав те саме, - це те, що ви можете покластися на своїх операторів на функції віртуальних членів або допоміжні функції.