![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
![]()
Задача: Требуется реализовать класс (набор классов) для универсального "счетчика".
Счетчик характеризуется "разрядностью" (количеством "цифр") и типом "цифр". Примеры типов "цифр": обычная десятичная (0123...9), шестнадцатеричная (012...F), алфавитная (ABCD...Z), пользовательская (ваши варианты настройки для этого типа цифр). Счетчик должен уметь: - инициализироваться шаблоном задающим разрядность и тип цифр и текущим значением счетчика - инкрементироваться, декрементироваться - выводить текущее состояние в строку Дополнительно: тип каждой "цифры" в счетчике может быть своим, а не один и тот же для всего счетчика. Для этого создаю два класса: Schetchik и UniSchet - массив Schetchik-ов. Проблема в конструкторах и деструкторах... Код:
Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,070
|
![]()
S=new Schetchik[m];
Создание массива элементов типа Schetchik с вызовом конструктора по умолчанию для каждого объекта, а у вас конструктора такого нет. Вру. Есть, но он пустой. Для этой строчки: S[i]=Schetchik(n[i], A[i], a[i]); не реализован оператор присваивания. Либо пишите: Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
![]()
Спасибо за помощь...
![]() |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
![]()
Помогите, пожалуйста, еще...
Для вывода текущего состояния создаю функцию val. Она работает странно: кроме нужного значения выводит еще и пару странных символов... Например: должна вывести s4a, а выводит s4a|... В чем ошибка? Код:
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,070
|
![]()
Выделяйте в конструкторе под B m+1 символ и B[m] = '\0';
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
![]()
Спасибо, помогло....
![]() Теперь вопрос про переопределение операций... Код:
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,070
|
![]()
Что именно не так? Может по ссылке возвращать
Код:
Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
![]()
Спасибо, & уже поставила....
Как сделать так, чтобы эта операция работала при таком вызове: S++, а не при S->operator ++()? |
![]() |
![]() |
![]() |
#9 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() Цитата:
Код:
Последний раз редактировалось netrino; 17.08.2009 в 14:52. |
|
![]() |
![]() |
![]() |
#10 | |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
![]()
Спасибо за объяснение...
Только при вызове ++S, программа в UniSchet& UniSchet:: operator++() не заходит... Что не так? И еще вопрос: а как написать это Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите найти ошибку! | frantic150 | Microsoft Office Excel | 0 | 26.06.2009 18:23 |
Помогите найти ошибку! | Студентка@ | Помощь студентам | 3 | 21.05.2008 14:21 |
Помогите найти ошибку | KnDmPetr | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 11.04.2008 15:48 |