3 / 3 / 1
Регистрация: 08.10.2011
Сообщений: 45
|
|||||||||||
1 | |||||||||||
наследование С++14.11.2011, 18:35. Показов 3049. Ответов 10
Метки нет (Все метки)
Здравствуйте) опять обращаюсь к вам за помощью))
Дано задание: Описать базовый класс CStr – строка. Описать производный от СStr класс CSStr – шестнадцатеричная строка. Строки данного класса могут содержать только шестнадцатиричные символы. Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, строка принимает нулевое значение.Содержимое данной строки рассматривается как знаковое шестнадцатеричное число. Класс CSStr содержит следующие методы: конструктор без параметров; конструктор, принимающий в качестве параметра Си-строку (заканчивается нулевым байтом); конструктор копирования; деструктор, метод, преобразующий данную строку в целое десятичное число, метод изменение знака на противоположный (перевод числа в дополни-тельный код). Переопределить следующие операции: присваивание (=); сложение (+) — арифметическая сумма строк; операция (==) — проверка на равенство. Написать демонстрационную программу. С базовым классов вроде как то разобралась. А вот с производным ни как( Вот код базового класса:
0
|
14.11.2011, 18:35 | |
Ответы с готовыми решениями:
10
Заменить наследование классов на наследование интерфейсов Наследование шаблоном шаблона (наследование конструктора) Наследование интерфейса и наследование реализации Наследование С# , наследование полей |
Заблокирован
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14.11.2011, 19:04 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Замечания по базовому классу.
Вместо
Смысл этой функции
Конструктор копирования с учетом мною сказанного выше будет выглядеть следующим образом
Поэтому освобождение памяти должно быть безусловной! Вы всегда, когда создаете объект класса, выделяете память для s. Как я уже написал, оператор сравнения лучше сделать не членом класса
1
|
3 / 3 / 1
Регистрация: 08.10.2011
Сообщений: 45
|
|
14.11.2011, 20:12 [ТС] | 3 |
ого!!! и это только базовый классчто же будет дальше(
Добавлено через 1 час 1 минуту все ошибки по базовому классу исправила) насчет производного пока еще не поняла...
0
|
3 / 3 / 1
Регистрация: 08.10.2011
Сообщений: 45
|
|||||||||||
14.11.2011, 20:29 [ТС] | 5 | ||||||||||
в общем вот, я так понимаю описание производного класса будет еще сложнее?!
0
|
Заблокирован
|
|||||||||||
14.11.2011, 20:34 | 6 | ||||||||||
Вам надо удалить из класса ваш оператор сравнения, так как мы его заменили глобальным оператором сравнения, а в операторе присваивания вы ошибку не исправили.
Следующий код в операторе присваивания
1
|
3 / 3 / 1
Регистрация: 08.10.2011
Сообщений: 45
|
||||||
14.11.2011, 23:05 [ТС] | 7 | |||||
вопрос: почему компилятор ругается на строчку
когда вставляю в первый файл friend ostream& operator<<(ostream&,CStr&);также выдается ошибка?
0
|
3 / 3 / 1
Регистрация: 08.10.2011
Сообщений: 45
|
|
17.11.2011, 12:12 [ТС] | 8 |
может кто нибудь ответит?! интересно узнать в чем ошибка)
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
17.11.2011, 12:14 | 9 | |||||
Lennadij, Ошибку угадать надо?
Добавлено через 53 секунды
1
|
3 / 3 / 1
Регистрация: 08.10.2011
Сообщений: 45
|
|
17.11.2011, 12:21 [ТС] | 10 |
спасибо большое) теперь все работает
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
17.11.2011, 13:21 | 11 |
Учитывая открытое наследование, вспомни про virtual.
1
|
17.11.2011, 13:21 | |
17.11.2011, 13:21 | |
Помогаю со студенческими работами здесь
11
Наследование от IEnumerator<T>: как предотвратить наследование IEnumerator Наследование наследование Наследование Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |