Задать вопрос
@gth-other

Можно ли в C++ перезагрузить оператор уже существующего класса?

Например:
///////////////////
//////////////////
std::vector<int> a = {9, 8, 7};
std::vector<int> b = {1, 3, 4};
std::vector<int> c = a + b;
for (int i = 0; i < c.size(); i = i + 1) {
    std::cout << c[i] << " ";
}
//10 11 11//
  • Вопрос задан
  • 154 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
В описанном вами случае - можно, написав внешнюю функцию суммирования.
std::vector<int> operator + (std::vector<int> a, const  std::vector<int>& b)
{
    if(a.size()!=b.size())
    {
        throw std::range_error("sizes mismatch!");
    }
    for(size_t i=0;i!=a.size();++i)
    {
         a[i]+=b[i];
    } 
    return a;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы