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

Классы перегрузка операций

25.12.2016, 20:53. Показов 445. Ответов 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
#include <iostream>
#include <conio.h>
#include <clocale>
#define n 10
using namespace std;
 
class stroki
{
private:
    char st1[n], st2[n];
public:
 
    stroki(char st1[n], char st2[n])
    {
        for (int i = 0; i < n; i++)  st1[i] = '\0';
        for (int i = 0; i < n; i++)  st2[i] = '\0';
        st1[n];
        st2[n];
    }
    void sets(char st1[n], char st2[n]);
    void operator != (char*);
    void getS(char st1[n], char st2[n]);
    ~stroki()
    {
        for (int i = 0; i < n; i++)  st1[i] = '\0';
        for (int i = 0; i < n; i++)  st2[i] = '\0';
        cout << "Тут сработал деструктор" << endl;
    }
};
void stroki::sets(char st1[n], char st2[n])
{
    cout << "Введите s1: ";
    cin >> st1;
    cout << "Введите s2: ";
    cin >> st2;
}
void stroki :: operator !=(char* s)
{
    (strcmp(st1, st2) == 0);
}
void stroki::getS(char st1[n], char st2[n])
{
    if (st1 != st2)
    {
        cout << "Эти строки не равны." << endl;
    }
    else
    {
        cout << "Эти строки равны" << endl;
    }
}
int main()
{
    stroki;
    char st1[n], st2[n];
    setlocale(LC_ALL, "Russian");
    stroki sets(st1, st2);
    stroki getS(st1, st2);
    return 0;
}
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2016, 20:53
Ответы с готовыми решениями:

Классы и перегрузка операций
Добрый день. Изучаю в данный момент классы и перегрузку операций. Столкнулся с парой непонятных...

Классы. Перегрузка операций. С++
Разработайте программу на языке С++, используя пользовательский тип данных – классы и перегрузку...

Перегрузка операций
Добрый день! Задание простенькое но не могу решить так как не получается перегрузка операций....

перегрузка операций
Напишите программу, в которой используется класс Int, имитирующий стандартный класс Int....

2
229 / 112 / 79
Регистрация: 17.10.2016
Сообщений: 312
25.12.2016, 21:28 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
class stroki
{
private:
     char st1[n], st2[n];
public:
    // .............
 
    const char* stroki::getS1() const;
    const char* stroki::getS2() const;
 
 
    // .............
};
 
 
const char * stroki::getS1() const
{
    return  st1;
 
}
const char * stroki::getS2()  const
{
    return  st2;
 
}
bool operator==(const stroki &lhs , const stroki & rhs)
{
    return strcmp(lhs.getS1(), rhs.getS1()) == 0 
        && strcmp(lhs.getS2(), rhs.getS2()) == 0;
}
 
bool operator !=(const stroki &lhs, const stroki & rhs)
{
    return !(lhs ==  rhs);
}

у вас две строки
Цитата Сообщение от YRELIS Посмотреть сообщение
char st1[n], st2[n];
с какой сравнивать собрались?
Цитата Сообщение от YRELIS Посмотреть сообщение
void operator != (char*);
Добавлено через 6 минут
Цитата Сообщение от YRELIS Посмотреть сообщение
диструкторам
деструктор вам не нужен -- нет динамического выделения памяти.
Цитата Сообщение от YRELIS Посмотреть сообщение
Или скиньте в тему какой нибудь пример с перегрузкой
Поиск -> class String
1
0 / 0 / 1
Регистрация: 16.06.2015
Сообщений: 47
25.12.2016, 22:44  [ТС] 3
Цитата Сообщение от John999 Посмотреть сообщение
Поиск -> class String
Спасибо за полный ответ! буду пробовать что-то!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2016, 22:44

Перегрузка операций
Уважаемые программисты! Помогите новичку! Мне нужно написать программу, в которой реализуется...

Перегрузка операций
Не могу понять в чем ошибка. Нужно вводитьномер в формате (123) 456-789 Но почему то только...

Перегрузка операций
Данная программа выполянет операции с дробями. Но у меня возникла проблема. Я создал сервисную...

Перегрузка операций
C++ ругается когда я пытаюсь сделать след-ю перегрузку операций. У меня трехмерный массив matrix и...

Перегрузка операций
Добрый день форумчане, помогите решить задачку Перегрузить 8 операторов для класса Вот пример...

Перегрузка операций
Всем привет, нужно помощь, я самостоятельно изучаю программирование, наткнулся на лабораторную в...


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

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

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