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

Классы строк, массивы преобразование и т.д - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вводится последовательность целых чисел, 0 её конец http://www.cyberforum.ru/cpp-beginners/thread896381.html
Очень прошу помощи в решении данной задачи : Вводится последовательность целых чисел, 0 конец последовательности. Для каждого числа последовательности найти сумму его простых делителей (нахождение суммы простых делителей числа оформить как функцию). Буду очень признателен тем, кто не откажет в помощи.
C++ Перегрузка функций (Создать класс Set ) Создать класс Set – множество целых чисел, используя динамическую память. Определить операторы работы с множествами: "+" – объединение, "*" – пересечение, "-" вычитание, как дружественные функции, а "+=" – включение нового элемента в множество, "==" – сравнения на равенство, и др. как методы класса. Определить операторы "<<" и ">>". Также определить функцию определения принадлежности элемента... http://www.cyberforum.ru/cpp-beginners/thread896374.html
C++ Сосчитать количество слов в файле с русским текстом ; количество слов, которые начинаются с заданного буквосочетания.
Нужна программа чтобы нормально работала через Borland c++ Сосчитать количество слов в файле с русским текстом ; количество слов, которые начинаются с заданного буквосочетания.
Описать структуру с именем NOTE C++
Описать структуру с именем NOTE, содержащую поля: - фамилия и имя; - номер телефона; - дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: - ввод с клавиатуры данных в массив, состоящий из 5 структур типа NOTE; - вывод на экран информации о людях, чьи дни рождения совпадают с введенными с клавиатуры; - если таких людей нет, вывести соответствующее...
C++ Завтра курсовая! Составить команду из четырёх лучших бегунов для участия в эстафете 4х100 http://www.cyberforum.ru/cpp-beginners/thread896360.html
Элементы вещественного массива размером N содержат результаты забега на 100 м N спортсменов, измеренные в сек. Составить команду из четырёх лучших бегунов для участия в эстафете 4х100 (указать номера четырёх спортсменов). Помогите мне, пожааалуйста.
C++ MPI сложение матриц Здравствуйте, вот такое задание, посчитать сумму матриц, распараллелив на кластере. Я не могу понять как правильно реализовать этот случай так, что бы автоматически считалось на разном количестве подключаемых узлов, при этом распределить вручную я могу. У меня есть 2 варианта реализации, распределить с помощью функции MPI_Bcast (в этом случае не пойму как можно будет... подробнее

Показать сообщение отдельно
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,221
10.06.2013, 23:40  [ТС]     Классы строк, массивы преобразование и т.д
Новый вопрос по этой же программе:

Кликните здесь для просмотра всего текста
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream> 
 
class LINE
{
public:
LINE()
{
stroka = new char[1];
stroka[0] = '\0';
dlinna_stroki = 0;
}
 
LINE(char *massiv)
{
dlinna_stroki = strlen(massiv);
stroka = new char[dlinna_stroki + 1];
 
for (int a = 0; a < dlinna_stroki; a++)
{ stroka[a] = massiv[a]; }
stroka[dlinna_stroki] = '\0';
}
 
~LINE()
{
delete[] stroka;
dlinna_stroki = 0;
}
 
int get_dlinna_stroki() const 
{  
return dlinna_stroki;
}
 
char *get_stroka() const 
{ 
return stroka; 
}
 
char operator[] (int b) const
{
if (b > dlinna_stroki)
{ return stroka[dlinna_stroki - 1];  }
else
{ return stroka[b]; }
 
}
 
char & operator[] (int e)
{
if (e > dlinna_stroki)
{ return stroka[dlinna_stroki - 1];  }
else
{ return stroka[e]; }
 
}
 
LINE & operator= (const LINE & rhs)
{
if (this == &rhs)
{ return *this; }
else
{
delete[] stroka;
int w = 1 + rhs.get_dlinna_stroki();
stroka = new char[w];
for(int i=0; i < w; i++)
{
stroka[i] = rhs.stroka[i];
}
stroka[w-1] = '\0';
return *this;
}
}
 
LINE operator+ (const LINE & rhs)
{
int obsh_dlinna = dlinna_stroki + rhs.get_dlinna_stroki();
LINE temp(obsh_dlinna + 1);
int n;
for (n = 0; n < dlinna_stroki; n++)
{ temp[n] = stroka[n]; }
 
for (int v = 0; v < rhs.get_dlinna_stroki(); v++, n++)
{ temp[n] = rhs[v]; } 
temp[obsh_dlinna] = '\0';
return temp;
}
 
private:
LINE(int k)
{
stroka = new char[k + 1];
for (int i = 0; i < k; i++)
{
stroka[i] = '\0';
}
dlinna_stroki = k;
}
 
char *stroka;
int dlinna_stroki;
};
 
 
int main()
{
LINE strOne("Hello world");
 
std::cout << strOne.get_stroka() << "\n";
 
LINE strTwo("Nice day");
std::cout << strTwo.get_stroka() << "\n";
    
LINE strThree;
strThree = strOne + strTwo;
 
std::cout << strThree.get_stroka() << "\n";
    
system("pause");
return 0;
}


подскажите в чем косяк, строка 115 не выполняется, а точнее программа запускается потом критическая ошибка

Добавлено через 6 минут
И еще вопрос, что делают эти методы: char operator[] (int b) const и char & operator[] (int e)
 
Текущее время: 17:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru