|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
||||||
Наследование и конструктор с аргументами по умолчанию01.11.2013, 21:35. Показов 1914. Ответов 14
Метки нет (Все метки)
Есть некоторый абстрактный класс "объект", который наследуют все объекты (код конструктора):
При наследовании столкнулся не столь с проблемой, сколько с некрасивостью получающейся структуры что ли.. Дело в том, что, допустим, объект Sphere в таком случае в конструкторе помимо собственных параметров типа radius, должен брать и все эти параметры для Object конструктора, однако здесь я вижу два варианта: 1) Конструктор для сферы делается такой же, как для объекта (со значениями по умолчанию) + радиус и прочие. ---В этом случае выходит так, что при генерации параметров по умолчанию они будут переданы в конструктор объекта и, хотя параметры на самом деле не были переданы, объект будет думать, что ему передали параметры, хотя они и были взяты из значений по умолчанию конструктора класса сфера. Не очень то хорошо, разве нет? 2) Задать несколько, например, 4 конструктора класса сфера: без параметров со значениями по умолчанию, с параметрами первой группы (вращение вокруг собственной оси), с параметрами второй группы (вращение вокруг произвольной оси), с параметрами обоих групп (все параметры). ---В этом случае если я захочу добавить новые параметры, кол-во конструкторов будет увеличиваться в геометрической прогресси.. Какой подход применяют или, быть может, есть третий способ, который задают параметры по умолчанию, но, при этом, избегают недочетов этих двух?
0
|
||||||
| 01.11.2013, 21:35 | |
|
Ответы с готовыми решениями:
14
Создать функцию с двумя аргументами, имеющими значение по умолчанию; вывести на экран значения по умолчанию Будет ли определен компилятором конструктор по умолчанию, если есть конструктор с дефолтным параметром?
|
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|||
| 01.11.2013, 23:05 | |||
|
1
|
|||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 01.11.2013, 23:15 | ||
|
Если часто надо будет генерировать объект, у которого все параметры кроме position по дефолту, тогда имеет смысл создать класс прослойку, единственная задача которого - брать и передавать позицию, а также вызывать конструктор Object с дефолтными значениями.
1
|
||
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
| 02.11.2013, 11:11 [ТС] | |
|
Nick Alte, MrGluck, а если я захочу поменять зхначение по умолчанию, то неужели мне ручками придется во всех классах менять?
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
|
||||||||||||
| 02.11.2013, 11:17 | ||||||||||||
1
|
||||||||||||
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
| 02.11.2013, 12:32 [ТС] | |
|
ValeryS, define это плохо :<
novi4ok, и в итоге будет n! конструкторов? Упаси..
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
|
|
| 02.11.2013, 12:33 | |
|
1
|
|
|
140 / 110 / 60
Регистрация: 26.10.2013
Сообщений: 314
|
|||||||
| 02.11.2013, 12:50 | |||||||
|
Например,
0
|
|||||||
| 02.11.2013, 14:15 | ||
|
на практике имеется чаще всего несколько, перечислимых на пальцах одной ноги, вариантов создания объекта (или любой функции). если пишешь некий "хэлло уорлд!", или лабу какую на эту тему - можно применить. но когда задача и без этого имеет многомерное поле сложности, то эти дифолт-штучки-дрючки добавляют еще одно измерение, что не украшает жизнь красиво.
0
|
||
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
| 02.11.2013, 14:31 [ТС] | |
|
novi4ok, ты мне предлагаешь сделать для иерархии из двух классов 9 конструкторов? (позиция, вращение вокруг своей оси и произвольной оси - 3 разных блока, которые нужно выделить в обоих классах. И это ещё если между собой не смешивать)
0
|
|
| 02.11.2013, 14:33 | ||||||||||||
0
|
||||||||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||
| 02.11.2013, 17:48 | |||
|
Добавлено через 59 секунд
1
|
|||
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
| 02.11.2013, 21:41 [ТС] | |
|
MrGluck, тогда, видимо, я вас не понял. Можете пример набросать "класса-прослойки"?
0
|
|
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
| 02.11.2013, 22:21 | ||||||
1
|
||||||
| 02.11.2013, 22:21 | |
|
Помогаю со студенческими работами здесь
15
Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно? Конструктор с необязательными аргументами в python 2.7 Указатель на функцию с аргументами по умолчанию
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|