Форум программистов, компьютерный форум CyberForum.ru

Переопределение == - C++

Восстановить пароль Регистрация
 
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
17.12.2010, 23:00     Переопределение == #1
Кто сталкивался с такой проблемой:
Переопределяем операцию == для шаблонного класса вектора
в классе описана:
C++
1
int operator==(vector &left, vector &right)
и ниже переопределена
C++
1
2
3
4
5
6
7
8
9
template<class T>
int operator==(vector<T> &left, vector &right)
{
    if(left.n!=right.n) return 0;
    int i;
    for(i=0;i<left.n;i++)
        if(left.in[i]!=right.in[i]) return 0;
    return 1;
}
ругается, что оператор В КЛАССЕ должен быть описан с одним вектором внутри.
Когда убираю второй вектор из описания функции в классе и из описания функции вне класса
C++
1
2
3
4
5
6
7
8
9
10
11
int operator==(vector &left)
//.........
template<class T>
int operator==(vector<T> &left)
{
    if(left.n!=n) return 0;
    int i;
    for(i=0;i<left.n;i++)
        if(left.in[i]!=in[i]) return 0;
    return 1;
}
то пишет, что описание вне функции должно иметь 2 вектора.
Когда делаю в классе с одним вектором, а вне его с 2мя ессно ошибка.
Помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2010, 23:00     Переопределение ==
Посмотрите здесь:

C++ Переопределение оператора
C++ Переопределение operator [][]
Переопределение операций C++
C++ переопределение
C++ Переопределение операций
Переопределение массива C++
C++ переопределение операторов
Переопределение операций C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему

Метки
c++, вектор, переопределение операций
Опции темы

Текущее время: 09:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru