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

перегрузка операторов и функций - C++

Восстановить пароль Регистрация
 
Кмс
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 3
25.11.2011, 01:45     перегрузка операторов и функций #1
Помогите пожалуйста хотя бы разобраться что нужно сделать
класс стринг с горем пополам готов а вот дальше.....

1. Реализовать (на основе лекционного материала) класс String, который представляет строку символов произвольной длины (отчет - реализация класса).
2. Разработать класс структуры данных, содержащей строки String, в соответствии с вариантами заданий. Класс должен иметь интерфейс АТД который включает методы для добавления, удаления, поиска элементов в соответствии с логикой работы структуры данных
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.11.2011, 08:10     перегрузка операторов и функций #2
а в чем смысл темы?
причем тут перегрузка если вам целый класс нужен
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.11.2011, 08:19     перегрузка операторов и функций #3
Цитата Сообщение от PointsEqual Посмотреть сообщение
причем тут перегрузка если вам целый класс нужен
При своей реализации опреатора []. Кмс, оператор-член - это обычная функция, но её имя стостит из самого оператора, пробела и слова "operator", причём, слово пишется первым, потмо ставится пробел, а потом сам опреатор. Например:
C++
1
operator []
. Перегруженаня функция - это функция, имеющая как минимум две версии с разными списками аргументов. Весрия же функции - это просто обычная функция, но её имя совпадает с именем другой функции.
Кмс
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 3
25.11.2011, 16:01  [ТС]     перегрузка операторов и функций #4
а что такое "интерфейс атд" и что такое заглушки если можно с примерами
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.11.2011, 16:13     перегрузка операторов и функций #5
Цитата Сообщение от Кмс Посмотреть сообщение
а что такое "интерфейс атд"
Кто слушал лекции?
Кмс
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 3
28.11.2011, 20:57  [ТС]     перегрузка операторов и функций #6
лекции лекциями
вот то что у меня получилось
ошибок уже меньше
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
#include<iostream>
using namespace std;
class String
{
private:
    char *str;
    int size;
public:
    String()
    {
        str=0;
        size=0;
    }
    String (char *_str)
    {
        size=strlen(_str);
        str=new char [size+1];
        strcpy(str, _str);
    }
    ~String()
    {
        if (size!=0)
            delete str;
    }
    void set_S(char *s) //инициализация строки
    {
        str= new char [strlen(s)];
        strcpy(str,s);
    }
    char *getText()
    {
        return str;
    }
    int getSize()
    {
        return size;
    }
};
class Multiset
{
    String *str;
    int kol;        //количество
public:
    Multiset () //конструктор по умолчанию
    {
        kol=0;
    }
    Multiset(Multiset &a,char *adres, char *rabota )    //конструктор копирования
    {
        kol=a.kol;
        kol=10;
        str = new String *[kol];
    for (int i = 0; i != kol; i++)
        str[i] = new String [2];
 
    for (int i = 0; i != kol; i++)
    {      // заполнение списка 
            cout<<"заполнение  адресса ["<<i<<"]=";
            str[i].set_S(adres);
 
            //заполнение данных о работе 
             cout<<"Свединия о работе ["<<i<<"]=";
             str[i].set_S(rabota);
    }
         for (int i = 0; i != kol; i++)
            {
                strcpy(str[i].getText(),a.str[i].getText());
                strcpy(str[i].getText(),a.str[i].getText());
            }
    }
    ~Multiset()
    {
    }
    //инициализация списка заданным кол-вом ассоциаций
    void set (char *adres, char *rabota)
    {
        cout<<"Введите количество записей"<<endl;
        cin>>kol;
        str = new String *[kol];
    for (int i = 0; i != kol; i++)
        str[i] = new String [3];
 
    for (int i = 0; i != kol; i++)
    {      // заполнение адресса 
            cout<<"Aдрес["<<i<<"]=";
            str[i].set_S(adres);
 
            //заполнение данных о работе  
             cout<<"значение["<<i<<"]=";
             str[i].set_S(rabota);
    }
    //return kol;
    }
    void get()
    {
        for (int i = 0; i != kol; i++)
            {
                str[i].getText();
            }
    }
    void add(char *adres, char *rabota )
    {
        cout<<"Добавление в список "<<endl;
        str[kol].set_S(adres);
        str[kol].set_S(rabota);
        kol=kol+1;
    }
    void dell(char *adres)
    {
        cout<<"Удаление записи "<<endl;
         for (int i = 0; i != kol; i++)
         {
             if (strcmp(str[i].getText(),adres)==0)
             {
                
                     str[i-1]=str[i];
                     kol=kol-1;
             }
         }
    }};
Yandex
Объявления
28.11.2011, 20:57     перегрузка операторов и функций
Ответ Создать тему
Опции темы

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