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

Перегрузка операций в классе! Очень нужно! - C++

Восстановить пароль Регистрация
 
Помогите!
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 4
01.12.2009, 21:07     Перегрузка операций в классе! Очень нужно! #1
Перегрузить для класса stroka в теле класса Вычитание строк S1-S1: Из первого слова удалять только соответствующие вхождения буквы второго слова, например: олово – соло = во.

Класс stroka:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// stroka.cpp
#include <iostream.h>
#include <string.h>
struct  stroka{
     char *ch;
     int len;
     public:
         stroka(int N=80): // konstruktor 1
             len(0)
             {ch=new char[N+1];ch[0]='\0';}
         stroka(const char *s){
             len=strlen(s); ch=new char[len+1];
             strcpy(ch,s);
             }
         int &len_str(void) {return len;}
         char *string(void) {return ch;}
         void display(void){
                cout <<"\n¤«Ё** бва®ЄЁ:"<<len
                         <<" ҐҐ ᮤҐа¦Ё¬®Ґ -  "<<ch;}
         ~stroka() {delete [] ch;}
};
помогите умные люди!

Добавлено через 1 час 51 минуту
Сотку на телефон тому кто решит !!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2009, 21:07     Перегрузка операций в классе! Очень нужно!
Посмотрите здесь:

C++ ПЕРЕГРУЗКА ОПЕРАЦИЙ
C++ Перегрузка операций
C++ Перегрузка операций << и >>
C++ Перегрузка операций
Перегрузка операций C++
C++ Перезагрузка операций в классе
C++ Перегрузка операций
C++ Перегрузка операций
C++ Перегрузка операций
Использование контейнера vector и перегрузка операций в классе C++
Перегрузка операций в классе "рациональная дробь" C++
Перегрузка операций C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mrhard
8 / 8 / 0
Регистрация: 10.11.2009
Сообщений: 36
01.12.2009, 23:08     Перегрузка операций в классе! Очень нужно! #2
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
//class_stroka.cpp:
 
#include "stdafx.h"
#include "class_stroka.h"
 
stroka :: stroka(int size)
{
    strSize = size;
    ch = new char [size];    
}
 
stroka :: stroka(char *str)
{
    strSize = LenghtStr(str) + 1;
    ch = new char [strSize];
    StrCopy(str, ch);
}
 
int stroka :: LenghtStr(char *str)
{
    int i;
    for(i = 0; str[i]; i++);
    return i;
}
 
int stroka :: ShowLenght()
{
    return strSize;
}
 
void stroka ::StrCopy(char *strChar, char *strRez)
{
    while (*strRez++ = *strChar++);
}
 
stroka& stroka :: operator -= (stroka &obj)
{
    char *temp = new char [strSize];
    int k = 0, t = 0, i = 0;
while (i < strSize)
{
        for (int j = k; obj.ch[j]; j++)
        {
            if (ch[i] == obj.ch[j])
            {
                i++;
                k = j+1;
                //break;
            }
        }
                temp[t] = ch[i];
                t++;
                i++;
}
        
        
        temp[t] = '\0';
    delete [] ch;
    strSize = LenghtStr(ch) + 1;
    ch = new char [strSize];
    StrCopy(temp, ch);
    delete [] temp;
    return *this;
}
 
void stroka :: PrintStr()
{
    printf("%s", ch);
}
 
stroka :: ~stroka()
{
    delete [] ch;
}
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
#pragma once
 
//class_stroka.h:
 
class  stroka
{
    char *ch;
    int strSize;
    int LenghtStr(char *);
    void StrCopy(char *, char *);
 
public:
    stroka(int size);
    stroka(char *str);
    int ShowLenght();
    stroka& operator -= (stroka &);
    void PrintStr();
    ~stroka();
};
 
#include "stdafx.h"
#include "class_stroka.h"
 
 
void main()
{
    stroka opj1 = "olovo", opj2 = "solo";
    opj1.PrintStr(); 
    printf("\n");
    opj2.PrintStr();
    printf("\n");
    opj1 -= opj2;
    opj1.PrintStr();
    printf("\n");
}
Помогите!
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 4
01.12.2009, 23:15  [ТС]     Перегрузка операций в классе! Очень нужно! #3
мужик, спасибо огромное за отзыв!
я запустил у меня 11 ошибок показало. инклюды неизвестные. и там в операциях чото. Что делать?
mrhard
8 / 8 / 0
Регистрация: 10.11.2009
Сообщений: 36
02.12.2009, 10:27     Перегрузка операций в классе! Очень нужно! #4
сосдаеш сначала файл class_stroka.h в него копируеш с 1-ой по 21 строку 2-ого листинга
далее сосдаеш файл class_stroka.cpp и копируеш туда весть 1-ый листинг
ну и в сам проэкт копируеш с 26 строки и до конца, все должно работать
Yandex
Объявления
02.12.2009, 10:27     Перегрузка операций в классе! Очень нужно!
Ответ Создать тему
Опции темы

Текущее время: 13:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru