|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.06.2018, 10:46 | #1 |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
Ошибка в программе.
Вот решил сделать тот тип программы которого нет в учебнике, и выдаёт ошибку, решил попробовать сделать что просил компилятор, выдало другую ошибку, решил эту ошибку и всё зароботало, но можно ли по другому решить проблему? (Надеюсь не убью Вас запутанностью программы?)
Вот метод: Код:
Решил эту проблему так: добавил к методу: ": base()", другая ошибка: "Отсутствует аргумент, соответствующий требуемому формальному параметру "w" из "Class1.Class1(double)". Добавил метод Class1 в Class1 с кодом: Код:
Код:
Последний раз редактировалось Мaкс; 28.06.2018 в 10:56. Причина: Поправочка... Надо так: public Class1(){} а не так: public Class1(double w) {width = w;} |
28.06.2018, 10:50 | #2 |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
Скорей всего кто то спросит: зачем такой запутанный код?? Это что бы закрепить тему многоуровневую иерахию классов.
|
28.06.2018, 10:58 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Потому что ВЫ так захотели:
Код:
|
28.06.2018, 11:04 | #4 |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
|
28.06.2018, 11:07 | #5 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Нет это вы захотели. ВЫ же Class2 унаследовали от Class1 и в Class1 написали конструктор с параметром? ВЫ. Значит читайте предыдущий пост.
П.С. Если вы не еще не поняли или не прочитали в учебнике, то писать base() не обязательно... Последний раз редактировалось p51x; 28.06.2018 в 11:09. |
28.06.2018, 11:14 | #6 |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
Это я понял! Вот та самая ошибка:
|
28.06.2018, 11:15 | #7 |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
если не использовать base()
|
28.06.2018, 11:17 | #8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Посмотрите внимательно - ОШИБКА ОДНА И ТА ЖЕ.
Еще раз повторяю: Писать base() не обязательно. Компилятор достаточно умный, чтобы вызывать конструкторы базовых классов самостоятельно. Синтаксис с base придуман для программистов, чтобы они могли передать параметры и выбрать какой из конструкторов вызвать. |
28.06.2018, 11:21 | #9 |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
|
28.06.2018, 11:23 | #10 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Так в процитированном все есть...
1. Добавить конструктор в базовый без параметров 2. Использовать base(что_то) для вызова имеющегося |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка в программе | Nefroz | Работа с сетью в Delphi | 4 | 08.05.2014 18:32 |
ошибка в программе | charger | Visual C++ | 1 | 14.06.2011 00:20 |
Ошибка в программе C | Renat21 | Общие вопросы C/C++ | 6 | 02.04.2011 18:00 |
С++ Ошибка в программе | EwwwA | Общие вопросы C/C++ | 5 | 05.01.2009 23:12 |