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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как выглядит конструктор и деструктор для vector ? http://www.cyberforum.ru/cpp-beginners/thread1014876.html
Есть класс: class table_m { public: vector <Item> table; table_m(); }; Как будет выглядеть для него конструктор и деструктор? Конструктор и деструктор для vector нужно вызывать внутри конструктора table_m() ?
C++ в С++ Дана целочисленная квадратная матрица Определить:1)сумму элементов в тех строках, которые содержат хотя бы один нулевой элемент 1)Определить сумму элементов в тех строках, которые содержат хотя бы один нулевой элемент. 2)Поменять местами четные строки и четные столбцы матрицы. Помогите пожалуйста!!! http://www.cyberforum.ru/cpp-beginners/thread1014875.html
C++ Как в char запихнуть переменную?
Здрасте, подскажите пожалуйста, возможно ли в char запихнуть свою переменную? Допустим int x = 123; char com = "Asd"+x+"."; Ну, я думаю смысл понятен. Т.е. мне в середину текста надо впихнуть что-то, а как это сделать - я не вкуриваю. Только если разбивать это дело на куски...
C++ Переведите в код
int x; cin>>x; Если (if) переменная "х" не целочисленное число (int) то выполнить ну или выполнять пока (while) "х" не целочисленное число (int) Нужно это перевести в код
C++ Отсортировать массив http://www.cyberforum.ru/cpp-beginners/thread1014856.html
помогите отсортировать масив из числе 1,2,1,2,1,2,1,2 - так чтоб единици были вместе двойки отдельно . зарание спасибо Добавлено через 1 минуту помогите отсортировать масив из числе 1,2,1,2,1,2,1,2 - так чтоб единици были вместе двойки отдельно . зарание спасибо единици вместе , и двойки вместе вот так : 11112222
C++ Рекурсивный алгоритм Даны натуральные числа "N" и "M" надо решить с помощью с++ не могу переставить с этим кодом с++ #include <stdio.h> #include <math.h> double euob(double n, double m); int main () { double f; подробнее

Показать сообщение отдельно
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
21.11.2013, 22:37     Перегрузка операторов
Доброго всем времени суток!Пожалуйста помогите мне неучу разобраться.Пытаюсь разобраться с классами,но пока безуспешно без посторонней помощи не обойтись.Вот готовый пример перегрузки операторов ,но программа вылетает
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;
}
Пробовал и другие примеры куча ошибок.Пожалуйста подскажите как правильно делать.Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru