0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 5
1

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

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

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

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

if (some_string == another_string)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2014, 21:08
Ответы с готовыми решениями:

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в...

Перегрузка операторов
#include <stdio.h> #include <stdlib.h> class matrix { protected: int **mass; int n;...

Перегрузка операторов
Нужно для класса комплексных чисел перегрузить операторы. Односимвольные определить как...

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

1
5 / 5 / 12
Регистрация: 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;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2014, 00:56
Помогаю со студенческими работами здесь

Перегрузка операторов
Есть класс массив, у него есть перегрузка операторов ввода, вывода. Со стандартными типами данных...

[c++] Перегрузка операторов
Не работает. #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #pragma argsused struct FazzyNumber {...

перегрузка операторов
Это часть хедера(весь большеват) #include &lt;iostream&gt; #include &lt;cstdio&gt; using namespace std;...

Перегрузка операторов
Приветствую. Вот как выглядит задание: АТД − множество с элементами типа char. Дополнительно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru