Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Кмс
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 3
#1

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

25.11.2011, 01:45. Просмотров 884. Ответов 5
Метки нет (Все метки)

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

1. Реализовать (на основе лекционного материала) класс String, который представляет строку символов произвольной длины (отчет - реализация класса).
2. Разработать класс структуры данных, содержащей строки String, в соответствии с вариантами заданий. Класс должен иметь интерфейс АТД который включает методы для добавления, удаления, поиска элементов в соответствии с логикой работы структуры данных
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2011, 01:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перегрузка операторов и функций (C++):

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

Перегрузка функций и операторов - C++
Создать класс String – строку, используя динамическую память. Определить операторы "+" –сложение строк, "=" и "+=" – присваивания, как...

АТД, перегрузка операторов и функций - C++
Задание: 1. Реализовать (на основе лекционного материала) класс String, который представляет строку символов произвольной длины (отчет -...

Перегрузка операторов с использованием функций-членов и укозателя *this - C++
Из учебника я узнал, то что функция перегрузки операторов вызывается когда компилятор встретит выражение - c = a + b; затем b - передается...

Перегрузка функций и операторов, почему программа не работает? - C++
Помогите пожалуйста разобраться почему не работает программа? Создать класс 2-D координат. Определить операторы "+" и "-" как...

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this - C++
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в зависимости от чего зависит агрумент при...

5
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.11.2011, 08:10 #2
а в чем смысл темы?
причем тут перегрузка если вам целый класс нужен
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.11.2011, 08:19 #3
Цитата Сообщение от PointsEqual Посмотреть сообщение
причем тут перегрузка если вам целый класс нужен
При своей реализации опреатора []. Кмс, оператор-член - это обычная функция, но её имя стостит из самого оператора, пробела и слова "operator", причём, слово пишется первым, потмо ставится пробел, а потом сам опреатор. Например:
C++
1
operator []
. Перегруженаня функция - это функция, имеющая как минимум две версии с разными списками аргументов. Весрия же функции - это просто обычная функция, но её имя совпадает с именем другой функции.
0
Кмс
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 3
25.11.2011, 16:01  [ТС] #4
а что такое "интерфейс атд" и что такое заглушки если можно с примерами
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.11.2011, 16:13 #5
Цитата Сообщение от Кмс Посмотреть сообщение
а что такое "интерфейс атд"
Кто слушал лекции?
0
Кмс
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;
             }
         }
    }};
0
28.11.2011, 20:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2011, 20:57
Привет! Вот еще темы с ответами:

Перегрузка операторов - C++
Всем Hello world! Изучаю C++, сейчас дошёл до классов, а точнее до перегрузки операторов. Решил в учебных целях написать класс, который...

Перегрузка операторов - C++
Перегрузить оператор ввода, вывода для строки; Перегрузить операторы: +, =, +=, &gt;, &lt;, == .

Перегрузка операторов - C++
ЗАДАЧА 1 Создайте класс Circle (окружность): Реализуйте через перегруженные операторы; - Проверка на равенство радиусов...

Перегрузка операторов. C++ - C++
Помогите пожалуйста написать программу на тему перегрузка операторов. Задания Унарная операция. Создать объект - связный...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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