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

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

Войти
Регистрация
Восстановить пароль
 
Рома!-!
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 5
#1

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

23.05.2014, 21:08. Просмотров 447. Ответов 1
Метки нет (Все метки)

Помогите, пожалуйста, решить задачу

При создании собственных типов данных с помощью классов наиболее общей операцией является проверка на равенство экземпляров класса. Используя перегрузку, необходимо перегрузить операторы равенства (==), неравенства (!=). Необходимо добавить новый оператор в класс String, который проверяет, равны ли два экземпляров класса String, т.е. проверить, содержат ли строковые объекты одинаковые строки, как показано ниже:

if (some_string == another_string)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2014, 21:08     Перегрузка операторов
Посмотрите здесь:

Перегрузка операторов - C++
написал программу. проверил. вроде все правильно. но не работает. программа долjна посредством перегрузки знака = скопировать из строки S1...

Перегрузка операторов - C++
Помогите решить задачу на c++ мучаюсь 3 день Перегрузить операторы «==» и «!=» для строк. Оператор «==» возвращает соответственно 1,...

[C++] Перегрузка операторов - C++
Помогите пожалуйста перегрузить операторы в матрице: +=, i++, != и Перегрузил *= но не уверен, что так надо =\ Буду очень...

Перегрузка операторов - C++
Есть у меня свой тип рациональных дробей, и вот мне надо перегрузить оператор "+" таким образом, что бы работала такая строчка кодаRational...

перегрузка операторов - C++
Товарисссчи, что значит запись: CVector2D::operator+(CVector2D const& v1)const файл *срр и чем отличается от CVector2D const operator...

Перегрузка операторов - C++
Осуществите перегрузку оператора “+=” так, чтобы при его использовании сумма увеличивалась на 5. Помогите, срочно.

Перегрузка операторов - C++
Помогите проверить и сделать надо 1) Базовый класс Строка Описать базовый класс СТРОКА. Обязательные члены класса: * указатель...

Перегрузка операторов С++ - C++
Задание: Написать код на языке С++ где реализуется перегрузка операторов. Тематика: База данных института(студенты, аспиранты,...

перегрузка операторов - C++
Всем привет. Дошел до темы перегрузки операторов и возникло два вопроса. Первый: Чем отличается вот этот код String ...

Перегрузка операторов >>, << - C++
Помогите перегрузить операторы ввода и вывода в классе Time. (Я совсем-совсем новичек...)Заранее всем спасибо.class Time { friend...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tenzor
5 / 5 / 9
Регистрация: 21.05.2014
Сообщений: 29
24.05.2014, 00:56     Перегрузка операторов #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
using namespace std;
 
// Создаем класс товаров
class String {
    // Описываем поле класса (указатель на строку)
    private:
        char* str;
        
    // Описываем интерфейс класса
    public:
        // Конструктор по умолчанию
        String() {
            str = "";
        }
        
        // Конструктор с параметрами (передаем указатель на строку)
        String(char* str) {
            this->str = str;
        }
        
        // Вычисление размера строки
        int size() {
            return strlen(this->str);
        }
        
        // Оператор сравнения
        bool operator == (String str) {
            if(this->size() != str.size())
                return false;
            int i=0;
            bool flag=true;
            while(this->str[i]!='\0' and str.str[i]!='\0') { 
                if(this->str[i]!=str.str[i]) {
                    flag = false;
                    break;
                }
                i++;
            }
            return flag;
        }
        
        // Оператор неравенства
        bool operator != (String str) {
            return !(*this == str);
        }
        
        // Вывод объекта на экран
        void print() {
            cout << this->str << endl;
        }
};
 
int main() {
    // Создаем две строки
    String str("data");
    String str2("data");
    // Выводим их на экран
    str.print();
    str2.print();
    // Проверяем строки на равенство
    cout << (str == str2) << endl;
    
    // Проверяем строки на неравенство
    cout << (str != str2) << endl;
    return 0;
}
Ответ Создать тему
Опции темы

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