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

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

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

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

31.12.2006, 17:01. Просмотров 3030. Ответов 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++
Основная задача данного фрагмента отсортировать массив структур по полю name в алфавитном порядке, используя добавление с бинарным поиском...

перегрузка оператора! - C++
Помогите сложить диагонали , при помоши перегрузки оператора+, чтобы можно было написать в maine: c1+c2+c3.заранее спасибо! ...

Перегрузка оператора = - C++
Здравствуйте! При попытке заменить объект пользовательского класса q4 на q6 в контейнере set появляется ошибка: error C2678: binary '=' :...

Перегрузка оператора - C++
Здравствуйте. Не могу разобраться, как перезагрузить оператор &gt;&gt;. int a; cin &gt;&gt; a; Надо, чтобы a умножалось на некое число,...

Перегрузка оператора [] - C++
Проблема в том, что надо обязательно использовать вид obj, а не obj.arr. Иначе всё работает) #include&lt;iostream&gt; using namespace std; ...

перегрузка оператора - C++
Помогите,пожалуйста! у меня есть класс Gruppa, куда входят студенты (фамилия,номер группы,успеваемость,номер зачетки) подскажите как...

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

Перегрузка оператора - C++
Привет, форумчане. Есть простой класс, в котором перегружается оператор '==' : #ifndef POINT_H #define POINT_H class point{ ...

Перегрузка оператора ++ - C++
Что делает оператор ++ при его перегрузке?

Перегрузка оператора << - C++
Пишу класс My_String #include &lt;iostream&gt; const int MAX = 1000; class My_String { private: char str; public:


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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)  { ... } }
Ответ Создать тему
Опции темы

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