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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 5.00
Alex_p
Сообщений: n/a
#1

Перегрузка оператора != - C++

31.12.2006, 17:01. Просмотров 3041. Ответов 2
Метки нет (Все метки)

Помогите разобраться с перегрузкой оператора !=
есть класс, в котором, в разделе private объявлен указатель на массив std::string *str;
C++
1
2
3
4
5
6
7
class MyClass
private: 
             std::string *str;
             ....
public:
             void func();
};
В функции void func(); есть цикл
C++
1
2
     for( int i = 0; str[i] != '' i++)
       { ... }
копмилятор выдаёт ошибку на эту строку типа
no match for operator!= ..
Пробовал решить это с помощью
int operator!=(const char), но увы.

Поделитесь своими соображениями, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.12.2006, 17:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка оператора != (C++):

Перегрузка оператора + - C++
Осуществляю перегрузку оператора +. и вот почему-то член класса s меняет свою длину с 4 до 7 и мне вот это не понятно.. Подскажите,...

Перегрузка оператора = - C++
Ввести строку символов S1. Программа должна содержать перегруженную операцию “=”, использование которой скопирует S1 в S2 при следующих...

Перегрузка оператора [] - C++
Создал класс в котором массив указателей на другой класс, перегрузил оператор взятия индекса следующим образом: h-файл #ifndef...

Перегрузка оператора - - C++
В своём классе я перегрузил оператор -,но в функции,использующей вычитание возникает ошибка error C2678: бинарный "-": не найден...

Перегрузка оператора += - C++
реализую класс собственных строк называеться MyString вылетает при использовании оператора += самое интересное что если дебажишь код по...

Перегрузка оператора () - C++
кто может подсказать как создать перегрузку что бы можно было работать с амссивввом в таком ввиде mass(3)=2 а не mass=2; если можно...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vyacheslav
Сообщений: n/a
31.12.2006, 21:25 #2
Вот версии перегруженных операторов - member-ов класса string:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template<class CharType, class Traits, class Allocator>
   bool operator!=(
      const basic_string<CharType, Traits, Allocator>& _Left,
      const basic_string<CharType, Traits, Allocator>& _Right
   );
template<class CharType, class Traits, class Allocator>
   bool operator!=(
      const basic_string<CharType, Traits, Allocator>& _Left,
      const CharType *_Right
      );
template<class CharType, class Traits, class Allocator></B>
   bool operator!=(
      const CharType *_Left,
      const basic_string<CharType, Traits, Allocator>& _Right
      );
И вот, аргументы

_Left A C-style string or an object of type basic_string to be compared.
_Right A C-style string or an object of type basic_string to be compared.

Поскольку char('' в строке for( int i = 0; str[i] != '' i++)) - не C-style строка - компилятор не может найти подходящую версию перегруженного оператора. Например :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include<string>
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
   string s1("visual");
   //char ch1 = 'v'
   char *ch1 = "v";
   if(s1 != ch1)
      cout << "s1!=ch1"; 
   else
      cout << "s1==ch1";
   cin >> ch1;
   return 0;
}
John Paramol
Сообщений: n/a
08.01.2007, 00:49 #3
Привет.
Ты наверное что-то такое хотел:
C++
1
2
for(int a=0; a<StringsCount; ++a)
{ for(int i=0; str[a][i]!='' ++i)  { ... } }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2007, 00:49
Привет! Вот еще темы с ответами:

Перегрузка оператора + - C++
Не могу заставить работать перегруженный оператор + в функции CMoveByVector Point.h: #define POINT_H #include &lt;iostream&gt; ...

Перегрузка оператора << - C++
Есть такой код. class matrix { public: ......; const double* operator(int) const; double* const operator(int); friend...

Перегрузка оператора << - C++
Здравствуйте форумчане, помогите исправить ошибку. Вообщем есть класс с перегруженным оператором &lt;&lt; . Category.h class...

Перегрузка оператора = - C++
Нужно перегрузить оператор так что бы в начале строки и в конце были квадратные скобки . Все почти работает только вот вывод на экран не...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru