|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.08.2009, 16:58 | #1 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
Помогите найти ошибку: классы в С++
Задача: Требуется реализовать класс (набор классов) для универсального "счетчика".
Счетчик характеризуется "разрядностью" (количеством "цифр") и типом "цифр". Примеры типов "цифр": обычная десятичная (0123...9), шестнадцатеричная (012...F), алфавитная (ABCD...Z), пользовательская (ваши варианты настройки для этого типа цифр). Счетчик должен уметь: - инициализироваться шаблоном задающим разрядность и тип цифр и текущим значением счетчика - инкрементироваться, декрементироваться - выводить текущее состояние в строку Дополнительно: тип каждой "цифры" в счетчике может быть своим, а не один и тот же для всего счетчика. Для этого создаю два класса: Schetchik и UniSchet - массив Schetchik-ов. Проблема в конструкторах и деструкторах... Код:
Код:
|
16.08.2009, 17:30 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
S=new Schetchik[m];
Создание массива элементов типа Schetchik с вызовом конструктора по умолчанию для каждого объекта, а у вас конструктора такого нет. Вру. Есть, но он пустой. Для этой строчки: S[i]=Schetchik(n[i], A[i], a[i]); не реализован оператор присваивания. Либо пишите: Код:
|
16.08.2009, 19:45 | #3 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
Спасибо за помощь...
|
17.08.2009, 11:07 | #4 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
Помогите, пожалуйста, еще...
Для вывода текущего состояния создаю функцию val. Она работает странно: кроме нужного значения выводит еще и пару странных символов... Например: должна вывести s4a, а выводит s4a|... В чем ошибка? Код:
|
17.08.2009, 11:50 | #5 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Выделяйте в конструкторе под B m+1 символ и B[m] = '\0';
|
17.08.2009, 12:57 | #6 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
Спасибо, помогло....
Теперь вопрос про переопределение операций... Код:
|
17.08.2009, 14:33 | #7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Что именно не так? Может по ссылке возвращать
Код:
Код:
|
17.08.2009, 14:42 | #8 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 22
|
Спасибо, & уже поставила....
Как сделать так, чтобы эта операция работала при таком вызове: S++, а не при S->operator ++()? |
17.08.2009, 14:48 | #9 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
Код:
Последний раз редактировалось netrino; 17.08.2009 в 14:52. |
|
17.08.2009, 15:07 | #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 |