|
0 / 0 / 0
Регистрация: 23.04.2009
Сообщений: 13
|
|
Class Complex08.05.2011, 11:59. Показов 3419. Ответов 24
Метки нет (Все метки)
Товарищи Программисты, проблема более теоритического характера, чем практического. А проблема в следующем: есть класс комплексное число, какой класс логичнее от него наследовать, чтобы не слишком заумно, но изящно и с демонстрацией применения виртуальных функций и тп? Заранее спасибо.
0
|
|
| 08.05.2011, 11:59 | |
|
Ответы с готовыми решениями:
24
Программа (class Complex) на неуправляемом языке c++ Шаблон класса complex. Ошибка undefined reference to `complex<double>::SetRe(double)' Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') |
|
|
|
| 08.05.2011, 17:47 | |
|
Я бы к такому вопросу подошел с точки зрения математики. Множество комплексных чисел содержит в себе множество действительных. Исходя из этого, я бы пронаследовал класс действительных чисел.
0
|
|
|
|
|
| 08.05.2011, 17:58 | |
|
Может неточно выразился. Действительные числа являются частным случаем комплексных, поэтому возможно наследование. Тем более что говорил в посте я о множествах, а не объектах.
0
|
|
|
|
|
| 08.05.2011, 18:05 | |
|
Частный случай - это тоже не наследование, а скорее обратное действие. И не совсем понял, при чём тут можества, когда автор про классы спрашивал.
Пример наследования это базовый класс "автомобиль" и производные классы "автомобиль ауди", "автомобиль мерседес" и т.п. Каждый из производных классов строго является понятием базового класса
0
|
|
|
|
|
| 08.05.2011, 18:11 | |
|
Тут тоже самое: родитель Комплексное Число, потомок Действительное Число (комплексная часть - ноль, можно даже математику не переопределять). Все как в вашем примере. Если Ауди, Мерс, Жигули - автомобили, то действительные, иррациональные, натуральные числа можно представить в виде потомков комплексного числа. Так логичнее на мой взгляд.
0
|
|
|
|
|
| 08.05.2011, 18:20 | |
|
Я не математик, а потому твою идею сразу не уловил. Т.е. ты считаешь, что все числа, условно говоря, являются комплексными, при этом действительные числа являются подмножеством (частным случаем) комплексных. Сие есть математический подход.
Программерское понятие наследования это несколько другое. Частный случай - НЕ есть наследование. Безуслоно можно представить действительное число в виде производного класса откомплексного числа. Точно так же можно ввести понятие "напряжение в вольтах" и через typdef реализовать понятие "масса в килограмах". Оба этих примера будут компилироваться и работать, ибо компилятору всё равно, что и как ты делаешь. Но идеологически эти примеры неправильные и кривые, потому что неверно задают соотношения между понятиями С программерской точки зрения комплексное число СОСТОИТ из двух действительных чисел (действительная и мнимая части). И твой пример ну никак не подходит для демонстрации программерского понятия "наследование"
0
|
|
|
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
|
|
| 08.05.2011, 18:29 | |
|
Evg прав.
0
|
|
|
|
||
| 08.05.2011, 18:29 | ||
|
В вопросе от автора сказано две вещи:
1) есть класс комплексного числа 2) какой класс от него логичнее наследовать Считаю, что в рамках вопроса предложил вполне приличный вариант ответа. Кстати Хорошо. Вам моя точка зрения не импонирует. Как бы вы выполнили наследование, учитывая, что мы имеем комплексное число, а значит, следуя логике, не должны в итоге получить класс - доска (к примеру)?
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 08.05.2011, 18:31 | |
|
У класса TReal могут появиться собственные методы типа bool Greater(x).
0
|
|
|
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
|
|
| 08.05.2011, 18:36 | |
|
Predator_2004, смотри. Логично что у класса компл. числа есть методы setReal, setImg? Тогда получится что у действ. числа тоже будет метод setImg. А нахрена?
0
|
|
|
|
|
| 08.05.2011, 18:48 | |
|
На худой конец можно сделать setImg приватным, т.к. он специфичен только для этого класса.
0
|
|
|
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
|
||
| 08.05.2011, 19:09 | ||
|
0
|
||
|
|
||
| 08.05.2011, 20:41 | ||
|
Добавлено через 23 минуты Если на то пошло, то имеет смысл для комплексного числа делать один сеттер, принимающий два формальных параметра (действ и компл части), а для наследуемого действительного числа сделать такой же виртуальный, но с приемом одного параметра. Тем самым выполним требование топикстартера о наличии виртуальных функций. И да, с приватностью погорячился.
0
|
||
|
236 / 173 / 25
Регистрация: 13.11.2010
Сообщений: 425
|
|
| 08.05.2011, 20:57 | |
|
Predator_2004, уж скорее наследовать класс комплексные числа от действительных, там как раз можно сделать виртуальными методы элементарных функций и операции арифметические. Наследуется сложное от простого ведь, а не наоборот. К тому же если таки унаследовать действительные числа от комплексных, то создаваемый объект будет содержать поле мнимой части - которое в действительных числах никогда не будет использоваться. И зря будет память занимать. Не вариант!
Можно попробовать как расширение комлпексных чисел - гиперкомплексные. Но я с ними мало знаком.
1
|
|
|
|
|||||
| 08.05.2011, 21:03 | |||||
|
Добавлено через 1 минуту Добавлено через 1 минуту
1
|
|||||
|
236 / 173 / 25
Регистрация: 13.11.2010
Сообщений: 425
|
||
| 08.05.2011, 21:27 | ||
|
0
|
||
|
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
|
|
| 08.05.2011, 21:44 | |
|
Попытка решить эту задачу сродни попытке натянуть презерватив на кактус. И все ради того, чтоб удовлетворить прихоть преподавателя, ни черта не шарящего в ООП.
Добавлено через 6 минут (c) slice
1
|
|
|
0 / 0 / 0
Регистрация: 23.04.2009
Сообщений: 13
|
||
| 08.05.2011, 21:52 [ТС] | ||
|
0
|
||
| 08.05.2011, 21:52 | |
|
Помогаю со студенческими работами здесь
20
Работа с class ами. Заполнение дин. массива типа class Create a programm that creates an object of created class Time and tests the member functions of class Нужно объект типа класс проинициализировать с помощью перегруженного конструктора Class::Class( bool a ) enum и class как составляющие другого class Как вызвать функцию class A, из функции class B Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|