![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
![]()
Добрый вечер всем. Задание надо сделать за 3-4 дня. Сразу скажу, халявы я никакой не жду, а только помощи, так как мало времени для подробного изучения материала - поэтому и написал.
Я знаю СИ достаточно выше среднего для студента курса программирования. НО, тут все полностью на плюсах. Я не изучал никак плюсы. Суть задания - для вас не будет сложна, я уверен. Буду по порядку писать, а тут уже будем смотреть по обстановке. Перейдем к заданию Реализуйте класс для хранения строк и безопасной работы с ними (аналог std::string). Каждый объект класса должен хранить значение типа char* и самостоятельно отслеживать, какое количество памяти необходимо для хранения строки. Пример такого класса: class String { private: char *data; ... }; Возможно, вам захочется завести приватное поле для хранение длины строки или указателя на последний элемент. Необходимо реализовать: - конструктор по умолчанию (создает пустую строку) - конструктор с параметром char * - конструктор копирования - деструктор (освобождает выделенную память) - оператор присваивания - оператор приведения к const char * - тестовую программу (функция main), проверяющую все перечисленное - конкатенацию двух строк: операцию + и += - проверку этих операторов - обращение по индексу - два варианта оператора []: константный для чтения, возвращающий char & для изменения - вставить в оба оператора отладочный вывод и продемонстрировать, в каких случаях каждый вызывается из них P.S. Просьба тему не удалять, т.к. повторюсь никакой халявы нет, правила я знаю. Кто может чем помочь - спасибо ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
ничего сложного, просто много рутиной работы. изучи перегрузку операторов и сам вполне осилишь
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
да у того же дохлого страуса был пример такого класса. почитай
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
![]() Цитата:
------отклонение от темы ------ Почему дохлого? |
|
![]() |
![]() |
![]() |
#6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Прикалываются русские ![]() P.S. Кста я бы на твоем месте посмотрел исходники этого хедера (string). Хотя бы представление иметь о том как делают.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#7 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2Stilet
исходники stl сложно читать, новичку уж точно. тем более, std::string перегружен интерфесом итераторов, что автору не нужно, а читать код еще сложнее
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]()
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
![]() Код:
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
В чем заключается его корявоть. Если не ошибаясь то при копировании объектов ошибку выдает?
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сТРОКИ ООП С++ | Camom1Le | Помощь студентам | 0 | 30.11.2010 21:55 |
C++ ООП | Smile.id | Помощь студентам | 2 | 21.02.2010 13:41 |
ООП | AlekDruzh | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 09.09.2009 20:32 |
Паскаль ООП. Примеры программ с использованием ООП | SeЯgey | Помощь студентам | 5 | 13.05.2009 21:55 |