Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ С/С++ и Linux - посоветуйте литературу https://www.cyberforum.ru/ cpp-beginners/ thread374985.html
Посоветуйте литературу. Хочу научится программировать на этих языках, но у меня стоит ос Ubuntu (Linux).
C++ Определить количество отрицательных элементов, лежащих выше главной диагонали матрицы
Доброго времени суток, Borland C учил давно и уже не помню что да как делается.. задание 1. определить количество отрицательных элементов, лежащих выше главной диагонали матрицы A(MxN). задание 2. найти количество одинаковых элементов массива A={a}. Добавлено через 3 часа 18 минут покопался в книжках, решил все сам..
C++ Обратиться к файлу, не указывая полный путь к нему https://www.cyberforum.ru/ cpp-beginners/ thread374969.html
Открывая файл я указываю путь на файл который находится в подкаталоге. system("start imya_papki\\test.exe"); А можно ли теперь из этого test.exe открыть предыдущий файл не указывая прямой путь (C:\\program files\\.... т.к. например диск может называться по другому) а как нибудь обратиться к каталогу в котором находиться этот каталог
C++ Вычислить номер максимального по модулю элемента массива https://www.cyberforum.ru/ cpp-beginners/ thread374965.html
В одномерном массиве, состоящем из n вещественных элементов, вычислить: - номер максимального по модулю элемента массива; - сумму элементов массива, расположенных после первого положительного элемента. #include "stdafx.h" #include "iostream" #include <stdio.h> #include <math.h> void main() {
Указатели C++
Добрый вечер, не могу что-то разобраться. В первом CASE определяется M, например М="kards\\cherv\\" , вот, а во втором CASE мне нужно к существующему М прибавить еще, например "2.bmp" , чтобы получилось М="kards\\cherv\\2.bmp" как это реализовать??? char* M; char function(int i,int j) { switch (i) { case 0: M="kards\\cherv\\"; break;
C++ Помогите с выводом https://www.cyberforum.ru/ cpp-beginners/ thread374959.html
// Подключение Библиотек #include <iostream.h> #include <stdio.h> #include <math.h> #include <conio.h> #include <string.h> int main()
C++ Не сложные задачи по с++ Всем привет! нужна помощь Найти в массиве минимальный элемент и удалить. https://www.cyberforum.ru/ cpp-beginners/ thread374954.html scanf() C++
Всем привет! Вот маленький тестовый пример #include <stdio.h> int i; int main() { printf("Enter value: \n");
C++ подскажите по строкам в С++ задание вот такое: Даны две строки, состоящие из слов, разделѐнных одним или несколькими пробелами. Из слов этих строк сформировать новую строку так, чтобы слова в ней чередовались: сначала слово из первой строки, затем через пробел – слово из другой строки и т.д., а в конце поместить слова, оставшиеся без пары. Слова в новой строке должны разделяться ровно одним пробелом. и я написал вот такой... https://www.cyberforum.ru/ cpp-beginners/ thread374946.html C++ Вычисление значения выражения Как записать вычисление этой суммы? Спасибо. https://www.cyberforum.ru/ cpp-beginners/ thread374936.html
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Х[нач] до Х[кон] с шагом dx. C++
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Х до Х с шагом dx. -a-(x/10+b) при x<0 и b!=0 (!= это не равно) F= (х-a)/(x-c) при x>0 и b=0 3x+(2/c) в остальных случаях где a,b,c - действительные числа. Функция F должна принимать действительное значение, если выражение
C++ Помогите подправить код Задача. Вводится n-значный массив состоящий из целых элементов. Надо найти произведение четных элементов. Но у меня почему то не работает. Поможете исправить? #include <iostream> #include <time.h> using namespace std; int main() { int n,proz=0; cout << "Введите n: "; //Задаем количество элементов для генерации массива https://www.cyberforum.ru/ cpp-beginners/ thread374902.html
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
0

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

30.10.2011, 16:54. Показов 559. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string>
#include <stdlib.h>
using namespace std;
 
class TestContent
{
 
public:
 
int x,res;
string File;
    void Init();
    void ReadFile();
    void Read(int _i);
    void Show();
    void testing();
    void compare();
 
    friend TestContent operator+(TestContent left, TestContent right);
//  void operator +(const TestContent& ans) const;
    TestContent(string _File) //конструктор
    {
        cout<<"ctvoreno novui obekt klasy"<<endl;
        File=_File;
    }
 
    struct Task
    {
        char vopros[100];
        char a[30];
        char b[30];
        char c[30];
        char d[30];
        char e[30];
        int tru;
        int balls;
 
        bool operator ==(Task& ans)
        {
            if (strcmp (vopros , ans.vopros)==0)
                return true;
            else return false;
        }
 
//      string operator +(Task& ans); метод додавання символів в полі питання
 
    };  //array[100];
    
    Task mas[3];
    Task new_mas[6];
 
};
TestContent operator+(TestContent left, TestContent right) {
 TestContent Res("0");
    for(int i=0;i<3;i++)
            {
                Res.new_mas[1].vopros=left.mas[i].vopros;
            }
 
 
}
/*void TestContent::operator +(const TestContent& ans) const
        {
            for(int i=0;i<3;i++)
            {
            TestContent::new_mas[i].vopros=TestContent::mas[i].vopros;
            TestContent::new_mas[i].a=TestContent::mas[i].a;
            TestContent::new_mas[i].b=TestContent::mas[i].b;
            TestContent::new_mas[i].c=TestContent::mas[i].c;
            TestContent::new_mas[i].d=TestContent::mas[i].d;
            TestContent::new_mas[i].e=TestContent::mas[i].e;
            TestContent::new_mas[i].tru=TestContent::mas[i].tru;
            TestContent::new_mas[i].balls=TestContent::mas[i].balls;
            }
            for(int i=3;i<6;i++)
            {
            TestContent::new_mas[i].vopros=ans.mas[i].vopros;
            TestContent::new_mas[i].a=ans.mas[i].a;
            TestContent::new_mas[i].b=ans.mas[i].b;
            TestContent::new_mas[i].c=ans.mas[i].c;
            TestContent::new_mas[i].d=ans.mas[i].d;
            TestContent::new_mas[i].e=ans.mas[i].e;
            TestContent::new_mas[i].tru=ans.mas[i].tru;
            TestContent::new_mas[i].balls=ans.mas[i].balls;
            }
                for (int i=0;i<6;i++)
                cout<<"Pezyltuiu4ui masuv"<<endl;
        {
            cout<<"Putannia N"<<i+1<<endl;
            cout<<"putannia:"<<TestContent::mas[i].vopros<<endl<<"a="<<TestContent::mas[i].a<<endl<<"b="<<TestContent::mas[i].b<<endl<<"c="<<TestContent::mas[i].c<<endl<<"d="<<TestContent::mas[i].d<<endl<<"e="<<TestContent::mas[i].e<<endl<<"balls="<<TestContent::mas[i].balls<<endl;
        }
        }*/
//string TestContent::Task::operator +(Task& ans)
//      {
//          char res[/*strlen(TestContent::mas[i].vopros)+strlen(ans.TestContent::mas[i].vopros)+1*/100]; //c99
//          strcpy(res, vopros);
//          strcat(res, ans.vopros);
//              return res;
//
//      }
 
void TestContent::Init()
{
    int a,b;
    cout<<"bajaete zapovnutu testu avtomatu4no?"<<endl<<"1-tak"<<endl<<"else-ni"<<endl;
    cin>>a;
    if (a==1) ReadFile();
 
    else 
        {
            for(int i=0;i<3;i++) Read(i);
            TestContent::compare();
        };
    cout<<"bajaete proitu danui test?"<<endl<<"1-tak"<<endl<<"else-ni"<<endl;
    cin>>b;
    if (b==1)
    {
        system("cls");
        TestContent::testing();
    }
    else cout<<"press enter to continious";
 
}
 
void TestContent::ReadFile()
{
    ifstream File1(File);
        for(int i=0;i<3;i++)
        {
            //File1>>TestContent.mas[i].vopros>>obj.mas[i].a>>obj.mas[i].b>>obj.mas[i].c>>obj.mas[i].d>>obj.mas[i].e>>obj.mas[i].tru>>obj.mas[i].balls;
            //cout<<obj.mas[i].vopros<<obj.mas[i].a<<obj.mas[i].b<<obj.mas[i].c<<obj.mas[i].d<<obj.mas[i].e<<obj.mas[i].tru<<obj.mas[i].balls;
            File1>>TestContent::mas[i].vopros>>TestContent::mas[i].a>>TestContent::mas[i].b>>TestContent::mas[i].c>>TestContent::mas[i].d>>TestContent::mas[i].e>>TestContent::mas[i].tru>>TestContent::mas[i].balls;
            //cout<<"v:"<<TestContent::mas[i].vopros<<"\ta="<<TestContent::mas[i].a<<"\tb="<<TestContent::mas[i].b<<"\tc="<<TestContent::mas[i].c<<"\td="<<TestContent::mas[i].d<<"\te="<<TestContent::mas[i].e<<"\ttru="<<TestContent::mas[i].tru<<"\tballs="<<TestContent::mas[i].balls<<endl;
        }
}
 
void TestContent::Read(int _i)
{
int i=_i;
 
            cout<<"bilet N"<<i+1<<endl;
            cout<<"vvedit putannia: "; cin>>TestContent::mas[i].vopros;
            cout<<"vvedit variantu vidpovidi:"<<endl;
            cout<<"a: ";cin>>TestContent::mas[i].a;
            cout<<"b: ";cin>>TestContent::mas[i].b;
            cout<<"c: ";cin>>TestContent::mas[i].c;
            cout<<"d: ";cin>>TestContent::mas[i].d;
            cout<<"e: ";cin>>TestContent::mas[i].e;
            cout<<"vvedit nomer pravulnoi vidpovidi: "; cin>>TestContent::mas[i].tru;
            cout<<"vvedit kilkist baliv za virny vidpovid:"; cin>>TestContent::mas[i].balls;
            cout<<endl;
        
}
void TestContent::compare()
{
for(int j=2;j>0;j--)
            {
                    int i;
 
                if (TestContent::mas[j]==TestContent::mas[j-1]) //використовуэться перегрузка оператора ==
                {
                    cout<<"zaputann'a N"<<j<<" ta N"<<j+1<<" odnakovi. Bajaete zminutu 9kuicb bilet ?(1-tak,else-ni)"<<endl; 
                    cin>>x;
                    if (x==1)
                    {
                        cout<<"vvedit nomer bileta 9kui xo4ete 3minuyu:";
                        cin>>i;
                        i--;
                        TestContent::Read(i);
                    }
                }
            }
}
 
void TestContent::testing()
{
    int y;
    res=0;
        for (int i=0;i<3;i++)
        {
            cout<<"Putannia N"<<i+1<<endl;
            cout<<"putannia:"<<TestContent::mas[i].vopros<<endl<<"a="<<TestContent::mas[i].a<<endl<<"b="<<TestContent::mas[i].b<<endl<<"c="<<TestContent::mas[i].c<<endl<<"d="<<TestContent::mas[i].d<<endl<<"e="<<TestContent::mas[i].e<<endl<<"balls="<<TestContent::mas[i].balls<<endl;
            cin>>y;
            if (y==TestContent::mas[i].tru)
            {
                cout<<"virno!"<<endl;
                res=res+TestContent::mas[i].balls;
            }
            else cout<<"nevirno!"<<endl;
        }
    cout<<"resultat testy: "<<res<<endl;
}
 
void TestContent::Show()
{
    for (int i=0;i<3;i++)
        {
            cout<<"Putannia N"<<i+1<<endl;
            cout<<"putannia:"<<TestContent::mas[i].vopros<<endl<<"a="<<TestContent::mas[i].a<<endl<<"b="<<TestContent::mas[i].b<<endl<<"c="<<TestContent::mas[i].c<<endl<<"d="<<TestContent::mas[i].d<<endl<<"e="<<TestContent::mas[i].e<<endl<<"balls="<<TestContent::mas[i].balls<<endl;
        }
}
int main()
{
//  TestContent *obj_1 = new TestContent("2.txt");
    //створення обєкту класу, який автоматично заповнить тест з файлу 2.тхт
    TestContent obj_1("2.txt");
    obj_1.ReadFile();
    obj_1.Show();
    cout<<"press enter to continious";
    getch();
    system("cls");
 
//створення обєкту класу, з яким користувач буде працювати
    TestContent obj("1.txt");
l1: cout<<"1-Proxodjennia testy"<<endl<<"else-Pedaryvannia testy"<<endl;
    cin>>obj.x;
    if (obj.x==1)
    {
            obj.ReadFile();
            obj.testing();
    }
    else 
    {
            obj.Init();
    }
cout<<"summa dvoh testovuh naboriv"<<endl;
obj+obj_1;
getch();
system("cls");
goto l1;
return 0;
}
Помгите плиз перегрузить оепратор + для обьектов класса TestContent. В классе есть структура Task и создан ее массив из 3 структур таких.
создано 2 обьекта класса. перегрузкой нужно сделать obj_1+obj, чтоб при этом результатом был массив структур [6] который будет в себе содержать массив структуры первого обьекта и второго.

Пробовал делат но постоянно мешает ошибка :

1>c:\documents and settings\admin.skerskij\мои документы\visual studio 2010\projects\laba2 programming\laba2 programming\1.cpp(60): error C2106: =: левый операнд должен быть левосторонним значением


пробовал вот так делать
C++
1
2
3
4
5
6
7
8
9
TestContent operator+(TestContent left, TestContent right) {
 TestContent Res("0");
    for(int i=0;i<3;i++)
            {
                Res.new_mas[1].vopros=left.mas[i].vopros;
            }
 
 
}
и так

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
void TestContent::operator +(const TestContent& ans) const
        {
            for(int i=0;i<3;i++)
            {
            TestContent::new_mas[i].vopros=TestContent::mas[i].vopros;
            TestContent::new_mas[i].a=TestContent::mas[i].a;
            TestContent::new_mas[i].b=TestContent::mas[i].b;
            TestContent::new_mas[i].c=TestContent::mas[i].c;
            TestContent::new_mas[i].d=TestContent::mas[i].d;
            TestContent::new_mas[i].e=TestContent::mas[i].e;
            TestContent::new_mas[i].tru=TestContent::mas[i].tru;
            TestContent::new_mas[i].balls=TestContent::mas[i].balls;
            }
            for(int i=3;i<6;i++)
            {
            TestContent::new_mas[i].vopros=ans.mas[i].vopros;
            TestContent::new_mas[i].a=ans.mas[i].a;
            TestContent::new_mas[i].b=ans.mas[i].b;
            TestContent::new_mas[i].c=ans.mas[i].c;
            TestContent::new_mas[i].d=ans.mas[i].d;
            TestContent::new_mas[i].e=ans.mas[i].e;
            TestContent::new_mas[i].tru=ans.mas[i].tru;
            TestContent::new_mas[i].balls=ans.mas[i].balls;
            }
                for (int i=0;i<6;i++)
                cout<<"Pezyltuiu4ui masuv"<<endl;
        {
            cout<<"Putannia N"<<i+1<<endl;
            cout<<"putannia:"<<TestContent::mas[i].vopros<<endl<<"a="<<TestContent::mas[i].a<<endl<<"b="<<TestContent::mas[i].b<<endl<<"c="<<TestContent::mas[i].c<<endl<<"d="<<TestContent::mas[i].d<<endl<<"e="<<TestContent::mas[i].e<<endl<<"balls="<<TestContent::mas[i].balls<<endl;
        }
пожалуйста помогите сделать это.

Вернуться к обсуждению:
Перегрузка оператора + C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2011, 16:54
Готовые ответы и решения:

Перегрузка оператора []
всем доброго времени суток! помогите перегрузить оператор есть у меня класс bd, и массив объектов...

Перегрузка оператора []
Возможно ли создать два перегруженных оператора индексации, чтобы один из них возвращал l-value,...

Перегрузка оператора --
Добрый день, у меня возникла небольшая проблема. Дело в том, что display() работает нормально....

Перегрузка оператора <<
Добрый пень! подскажите как написать код для реалилизации следующего требования: SpecialPrint...

0
30.10.2011, 16:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2011, 16:54
Помогаю со студенческими работами здесь

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

Перегрузка оператора =
Нужно перегрузить оператор так что бы в начале строки и в конце были квадратные скобки . Все почти...

Перегрузка оператора +
Всем добрый вечер. Прошу помочь разобраться. Задание - Для определения даты поставки строительных...

перегрузка оператора +
Не могу понять: в 184 строке отказывается работать. Без нее - все нормально. Скорее всего...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru