Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 790

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

21.11.2013, 22:37. Показов 2540. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток!Пожалуйста помогите мне неучу разобраться.Пытаюсь разобраться с классами,но пока безуспешно без посторонней помощи не обойтись.Вот готовый пример перегрузки операторов ,но программа вылетает
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
#include <stdlib.h>
#include <iostream>
#include <cstring> 
 
using namespace std;
 //СОЗДАЕМ СОБСТВЕННЫЙ КЛАСС
class stroka
{
  public:
   stroka (char*); //конструктор класса принимающий один параметр
   void operator +(char*); //определение оператора +
   void operator -(char); //определение оператора -
   void show_stroka(void); //метод класса для отображения строки
  private:
   char data[256]; //символьный массив, доступный только классу
};
stroka::stroka(char *str) //Транзитом через конструктор
{
strcpy(data,str); //копируем в символьный массив класса данные из принимаемой извне строки
}
void stroka::operator +(char *str) //Определяем оператор +
{
strcat(data,str); //как функцию сложения двух строк
}
void stroka::operator -(char letter)//Определяем оператор -
{
char temp[256]; // будем создавать новую строку
int i,j; //счетчики циклов
//Проходим по всей строке класса с помощью цикла и если символ строки не равен принятому символу (параметру), то копируем его в новую строку
for (i=0,j=0;data[i];i++) if (data[i]!=letter) temp[j++]=data[i];
temp[j]=NULL;
strcpy(data,temp); //Копируем новую строку в символьный массив класса
}
void stroka::show_stroka(void)
{
cout<<data<<endl; //Показываем символьный массив класса
}
int main()
{
 
  char *st,*st2; //Объявление двух указателей для строк
  cin.get(st,256); //Считывание первой строки с клавиатуры
  cin.get(st2,256); //Считывание второй строки с клавиатуры
  stroka title(st); //Объявление переменной типа нашего класса и передача в конструктор первой строки
  title+" "; //С помощью перегрузки операторов добавили к строке пробел
  title+st2; //C помощью перегрузки операторов добавили к строке вторую строку
  title.show_stroka(); //Отобразили результирующую строку на экране
  title-'в'; //При помощи перегрузки операторов пытаемся удалить символ в
  title.show_stroka(); //Отобразили результирующую строку
 
  return 0;
}
Пробовал и другие примеры куча ошибок.Пожалуйста подскажите как правильно делать.Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2013, 22:37
Ответы с готовыми решениями:

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

Перегрузка операторов
Расскажите пожалуйста про перегрузку в классе: всегда ли в ней должен быть return и что в нём должно быть её типы(void, int, и т.д.) и...

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

20
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 790
22.11.2013, 12:06  [ТС]
Студворк — интернет-сервис помощи студентам
Увидел свою ошибку.Всем спасибо.Буду разбираться как работает код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2013, 12:06

Перегрузка операторов /=, +=, -=
Добрый день. Есть 3 дроби F1, F2, F3 и нужно перегрузить оператор /=, у меня это выглядит так: void operator/=(Fraction f2) { ...

Перегрузка операторов
Ругается на операторы != и &lt; в 208 - 209 строках. На сколько я понял нужно перегрузить их. Можете помочь дописать, ну или обьяснить...

Перегрузка операторов С++
Здравствуйте, недавно начал изучать С++, до этого старался решать проблемы самостоятельно, но сейчас чето я туплю/не понимаю. Простоя...

Перегрузка операторов
Здравствуйте. Есть класс, переменной членом которого является массив. Необходимо, перегрузить операторы так, чтоб к объектам класса...

Перегрузка операторов
Создайте класс Fraction (обыкновенная дробь), в котором реализовать перегрузку: оператора суммирования дробей, оператора суммирования дроби...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru