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

Перегрузка оператора == для string - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ waveIn/Out http://www.cyberforum.ru/cpp-beginners/thread371435.html
Вообщем суть проблемы такова. Пытаюсь записать звук, а потом его воспроизвести (так-то сохранить, но для начала воспроизвести). погуглил, написал код. #include <windows.h> #include <stdio.h> #include <conio.h> #include <mmsystem.h>
C++ Файл на СИ!!! Есть задача на тему: ФАЙЛЫ...скажу честно, что на Си с файлами никогда не работал, так что прошу срочной помоши здесь, вот условие задачки: С помощью текстового редактора БЛОКНОТ создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Файл должен иметь расширение DAT. Написать программу, которая: -выводит текст на... http://www.cyberforum.ru/cpp-beginners/thread371428.html
C++ Интерполяция компонент поля
Здравствуйте. Помогите, пожалуйста, мне советом или вариантом решения. Есть программа, симулирующая движение частиц в магнитном поле. Я рассчитала добавочные компоненты, которые приводятся в виде файла (x,y,z,Bx,By,Bx либо x,y,z,Babs). Мне нужно это поле как-то интерполировать и добавить в уже существующее описание поля, для того,чтобы узнать влияние этой добавки..Самой легкой будет линейная...
C++ Как додать два числа на битовом уровне С++
Помогите срочно надо
C++ Определить, является ли число простым http://www.cyberforum.ru/cpp-beginners/thread371406.html
сама задача: характеристикой столбца целочисленной матрицы назовем сумму эле-ментов, являющихся простыми числами. Упорядочить столбцы матрицы по убыванию их характеристик.
C++ bios.h // все написал, но непонятно, почему-то бузит по поводу bios.h, первый раз сталкиваюсь с проблемой такой, fatal error C1083: Не удается открыть файл включение: bios.h: No such file or directory вот код #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <io.h> подробнее

Показать сообщение отдельно
lavengerl
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 77
24.10.2011, 02:19     Перегрузка оператора == для string
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
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string>
#include <stdlib.h>
using namespace std;
 
class TestContent
{
 
public:
    TestContent(char *){}; //конструктор
int x,y,res;
 
    void Init();
    void ReadFile();
    void Read();
    void testing();
//  int operator ==(string); 
 
    struct Task
    {
        char vopros[100];
        char a[30];
        char b[30];
        char c[30];
        char d[30];
        char e[30];
        int tru;
        int balls;
    };  //array[100];
    
    Task mas[3];
private:
//  char data[256]; 
};
 
void TestContent::Init()
{
    int a;
    cout<<"bajaete zapovnutu testu avtomatu4no?"<<endl<<"1-tak"<<endl<<"else-ni"<<endl;
    cin>>a;
    if (a==1) ReadFile();
    else Read();
    cout<<"bajaete proitu danui test?"<<endl<<"1-tak"<<endl<<"2-ni"<<endl;
    cin>>y;
    if (y==1)
    {
        system("cls");
        TestContent::testing();
    }
    else if (y==2)
    {
        cout<<"press enter to continious";
    }
    else cout<<"pomulka!"<<endl;
 
 
}
 
void TestContent::ReadFile()
{
    
    ifstream File1("1.txt");
        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 x;
cout<<"skilku biletiv bajaete vvestu?(1-3";
cin>>x;*/
for(int i=0;i<3;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::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;
}
 
 
/*TestContent::TestContent(char *str)
 
{ 
   strcpy(data, str); 
}
 
int TestContent::operator ==(string str)
{ 
   int i; 
   for (i = 0; data[i] == str.data[i]; i++) 
   if ((data[i] == NULL) && (str.data[i] == NULL)) return(1); // Равно
   return (0); //He равно 
}*/
 
int main()
{
    TestContent obj("werwew");
    TestContent obj2("sasddsa");
    TestContent obj3("werwew");
l1: cout<<"1-Proxodjennia testy"<<endl<<"2-Pedaryvannia testy"<<endl;
    cin>>obj.x;
    if (obj.x==1)
    {
            obj.ReadFile();
            obj.testing();
            getch();
    }
    else if (obj.x==2)
    {
            obj.Init();
            getch();
    }
    else 
        {
            cout<<"pomulka"<<endl;
        };
 
system("cls");
goto l1;
return 0;
}
прога делает все то что мне нужно н оосталось реализовать перегрузку оператора == для типа string. тоесть мне нужно будет сравнить обьекты
TestContent obj("werwew");
TestContent obj2("sasddsa");
TestContent obj3("werwew");
и если будут одинаковые то удалить повторяющийся.

Нашел в нете инфу.
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
#include <iostream.h>
 
#include <string.h>
 
class string
 
{ 
public: 
   string(char *); // конструктор 
   char * operator +(char *); 
   char * operator -(char); 
   int operator ==(string); 
   void show_string(void); 
private: 
   char data[256]; 
};
 
string::string(char *str)
 
{ 
   strcpy(data, str); 
}
 
int string::operator ==(string str)
 
{ 
   int i; 
   for (i = 0; data[i] == str.data[i]; i++) 
   if ((data[i] == NULL) && (str.data[i] == NULL)) return(1); // Равно
   return (0); //He равно 
}
 
void string::show_string(void)
 
{ 
   cout << data << endl; 
}
 
void main(void)
 
{ 
   string title( "Учимся программировать на C++"); 
   string lesson("Перегрузка операторов"); 
   string str( "Учимся программировать на C++"); 
   if (title == lesson) cout << "title и lesson равны" << endl; 
   if (str == lesson) cout << "str и lesson равны" << endl; 
   if (title == str) cout << "title и str равны" << endl; 
}
но никак не могу пихнуть ее себе в прогу. Ошибки и такое прочее. К тому же я незнаю как оно должно выглядить даже эта перегрузка. Помогите пожалйста написать этот блок чтоб можно было
C++
1
if (str == lesson)
таким путем сравнивать строки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru