Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Tankist 90
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349

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

05.03.2017, 15:31. Показов 1247. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. Вот как выглядит задание:

АТД − множество с элементами типа char. Дополнительно пере-
грузить следующие операции:
> − проверка на принадлежность(char in set Паскаля);
* − пересечение множеств;
< − проверка на подмножество.

Я пытался перегрузить оператор *, по вот этому шаблону:
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
#include <iostream>
#include <cstring>
 
using namespace std;
 
class String{
public:
    String(const char*);
 
    const char* operator+(const char* rvalue);
    void operator+=(const char* rvale);
    void operator+=(String &rvalue);
    void print() { cout << data; }
    const char* get_data() { return data; }
private:
    char data[256];
};
 
String::String(const char* str){ 
    strcpy(data, str);
}
 
void String::operator+=(const char* rvalue){ //Перегрузка оператора +=
    strcat(data, rvalue);
}
 
void String::operator+=(String &rvalue){ //Перегрузка оператора +=
    strcat(data, rvalue.get_data());
}
 
int main(){
    String MyStr = "String One", MyStr2 = "Two string";
    MyStr+=MyStr2;
    MyStr.print();
    MyStr+="1111";
    MyStr.print();
}
Вот что получилось:
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
#include <iostream>
#include <cstring>
 
class A
{
    char data[256];
 
public:
    A(const char*str)
    {
        strcpy_s(data,str);
    }
 
    void print(){std::cout<<data;}
 
    char *get_data(){return data;}
 
    void operator*(A& ob)  
    {
      for(int i=0;i<256;i++)
      {
          if(data[i]==ob.get_data[i])
          {
            std::cout<<data[i];
          }
      }
    }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main()
{
    setlocale(0,"");
    char mas[256];
    char mas1[256];
    
    cout<<"Введите строку:";
    cin>>mas;
    cout<<"Введите ещё строку:";
    cin>>mas1;
 
    A obj(mas);
    A obj1(mas1);
 
    obj*obj1;
    obj.print();
 
 
    system("pause");
    return 0;
}
В общем и целом - не получилось. Я понимаю что так не делают: ob.get_data[i] но ничего другого я не придумал...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2017, 15:31
Ответы с готовыми решениями:

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

Перегрузка операторов
Задание такое-Составить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения...

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

1
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
05.03.2017, 15:58
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
A() // конструктор по умолчанию
{
    for(int i=0;i<256;i++)
        data[i]=0;
 
}
A operator*(A& ob) // возвращает пересечение *this и ob 
{
    A t;
    int k=0;
    for(int i=0;i<256;i++)
    {
        for(int j=i;j<256;j++)
        {
            if(data[i]==ob.data[j])
            {
                t.data[k++]=data[i];
                break;
            }
        }
    }
    return t;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2017, 15:58
Помогаю со студенческими работами здесь

Перегрузка операторов
Вот задание b) Создать класс Set – множество целых чисел, используя динамическую память. Определить операторы работы с множествами:...

Перегрузка операторов
Никак не возьму в толк, почему оно не работает! // CG5.cpp : Defines the entry point for the console application. // #include...

C++ перегрузка операторов
люди такая ситуация кто может в краце объясните перегрузку операторов мне например надо перегрузить оператор умножения что бы умножить...

Перегрузка операторов
Ошибка: &quot;error: invalid operands to binary expression ('Number *' and 'Number *') n3 = n1 * n2;&quot; class Number { public: ...

Перегрузка операторов
Приветствую! Необходима помощь. Разработать класс Vec4 как вектор из 4-х float. Определить оператор ~ для перестановки элементов вектора...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru