65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Простенький класс работы с комплексными числами.29.09.2011, 22:17. Показов 3734. Ответов 15
Метки нет (Все метки)
Добрый вечер, уважаемые!
На днях решил вспомнить то, чему учили в университете и понял, что много чего забыл. Попробовал написать класс работы с комплексными числами. Вот что получилось. Скорее всего получилось очень и очень коряво. Вот именно за этим к Вам, уважаемые, и обращаюсь. Вопросы - внизу. Драйвер класса.
1) Можно ли заменить сумму и разность (для нее выписывать не буду) каким-либо отдельным методом, а не этим ужасом:
2) Хотелось бы для каждого объекта сделать конструктор и деструктор не по умолчанию. Но не совсем понимаю, что туда можно засунуть кроме начальной инициализации. Подскажете? Также буду признателен за любые замечания по поводу "гадкости" написания кода. Что нужно изменить, что подправить, чего делать категорически не стоит. Заранее спасибо за ответы!
0
|
29.09.2011, 22:17 | |
Ответы с готовыми решениями:
15
Класс для работы с комплексными числами класс для работы с комплексными числами Описать класс для работы с комплексными числами Класс Complex для работы с комплексными числами |
71 / 76 / 9
Регистрация: 30.06.2011
Сообщений: 176
|
||||||
30.09.2011, 03:44 | 2 | |||||
Через перегрузку операторов:
1
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
30.09.2011, 05:39 | 3 |
что такое "Драйвер класса"?
Зачет у тебя тут guard'ы для iostream и stdafx.h? Где у тебя конструкторы? Где оператор присваивания? Зачем такие странные методы, как "сложишь действительные части", "сложить мнимые части", которые на самом деле выполняют одно и то же (т.е. складывают два вещественных числа)? Где методы (или операторы), которые реализуют арифметику с самими комплексными числами?
0
|
65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
|
|
30.09.2011, 05:49 [ТС] | 4 |
Ну в моем понимании - это некий код, осуществляющий работу и тестирование этого самого класса.
Вот как раз про них и спрашиваю. Конструктор используется по-умолчанию. Знаю, что так использовать очень и очень не хорошо. Проблема в том, что это до меня и не доходит. Имеем класс комплексных чисел. Он описывает один объект. То есть фактически, для того, чтобы сложить два комплексных числа нужно в одном объекте делать метод на взятие другого объекта из массива. Может подскажете более действенную структуру класса (в плане методов, разумеется)?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
30.09.2011, 05:56 | 5 |
нет, класс комплексных чисел ничего не должен знать ни о каких массивах.
Смотри пост #2. Там уже все подсказали
1
|
65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
|
|
30.09.2011, 06:00 [ТС] | 6 |
Вот и я тоже так думаю.
Это если только на будущее. Не читал еще про перегрузку операторов. Все-равно спасибо. А можно еще вопрос? Почему Вы спросили на счет проверки включения <iostream> и "stdafx"? Её разве осуществлять не нужно? Перестраховаться там и все дела.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||||||||||||||||||||
30.09.2011, 08:03 | 7 | ||||||||||||||||||||
то, что ты сделал:
1
|
65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
|
|
30.09.2011, 16:23 [ТС] | 8 |
Фактически, я еще не разбирался с директивами препроцессора и как они устроены. Просто следую "шаблону", как дрессированная собака. Через пару глав дойду, надеюсь, что буду все это понимать.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
30.09.2011, 16:48 | 9 |
Тут можно почитать про директивы препроцессора: Препроцессорные директивы в C/C++ (#include, #define и прочее)
1
|
65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
|
|
30.09.2011, 16:54 [ТС] | 10 |
Благодарю. Можете что-нибудь сказать о книге Харви и Пола Дейтлов? Я на данный момент её сейчас "третирую".
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
30.09.2011, 16:56 | 11 |
Не читал
0
|
65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
|
||||||
01.10.2011, 21:23 [ТС] | 12 | |||||
Если кого интересует (хотя скорее всего нет, ибо тут все образованные люди, в отличии от меня), нашел выход из ситуации с суммой. Вспомнил, про передачу объекта в метод с помощью указателя.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
02.10.2011, 06:09 | 13 |
Slimmy, если передавать объекты по значению, а не по указателю, то все равно ничего не изменится.
0
|
65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
|
|
02.10.2011, 13:09 [ТС] | 14 |
При передаче по ссылке объект не копируется ведь, следовательно уменьшается время работы программы или я что-то путаю? Конечно, в таких "мини-прогах" на это абсолютно параллельно, но в больших проектах, где роль играет каждая сотая секунды - это принципиально, нет? Может я что-то не так понимаю.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
03.10.2011, 17:47 | 15 | |||||
все правильно, но тогда корректнее будет передавать либо по константой ссылке, либо по указателю на константу, т.к. передаваемые объекты не модифицируются внутри метода
Добавлено через 23 часа 26 минут ну, это если не считать того, что метод sumNumber никак не вписывается в логику класса complex. По сути, следуя из интуитивного понимания комплексных чисел, наш класс, представляющий комплексное число, должен поддерживать как минимум следующие методы (конструкторы, деструкторы и аксессоры опускаю)
1
|
65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
|
|
03.10.2011, 19:56 [ТС] | 16 |
То, что правильнее всего делать с перегрузкой операторов - это я уже понял, но пока багаж знаний не позволяет сделать это осознанно, а не по типу "да что тут думать? трясти нужно". На счет остальных добавленных методов - благодарю, сделаю. Просто делаю упражнения по книге, особо не задумываясь над содержанием.
0
|
03.10.2011, 19:56 | |
03.10.2011, 19:56 | |
Помогаю со студенческими работами здесь
16
Реализовать класс Complex для работы с комплексными числами Создать класс для работы с тригонометрическими комплексными числами Создать класс для работы с тригонометрическими комплексными числами - C++ Реализовать класс Complex для работы с комплексными числами. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |