![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
![]()
Доброго времени суток, уважаемые эксперты. Задали следующую задачу:
1) Разработать класс «Комплексное число». 2) Определить в нем конструктор, 3) перегрузить арифметические операции, 4) операции сравнения, 5) операцию преобразования в строку 6) и статический метод получения комплексного числа из строки В интернете нашел довольно много информации на эту тему. Но поскольку с классами особо не работал, то столкнулся с проблемой заполнения х и у внутри класса если данные брать из эдитов (хотя можно делать не обязательно так). Вообще стоит задача сделать как можно проще. Я пробовал много разных вариантов, но почему-то у меня программа компелируется но на этапе конструктора (при нажатии кнопки) выскакивает ошибка Viaccess violation. Насколько я понимаю - я вылажу за границы или беру неопределенные данные где-то. В общем прошу помощи в том как можно исправить мой код или реализовать может эту задачу иными способами. Вот мой код: Код:
|
![]() |
![]() |
![]() |
#2 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
найди того, кто тебя научил писать overload везде, где оно нах не нужно, и оторви ему
Код:
![]() Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось MihalNik; 04.03.2016 в 03:47. Причина: зад |
![]() |
![]() |
![]() |
#3 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
А вот потом поговорим, что такое конструктор, и как его правильно вызывать.
Программист хренов. Код:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 02.02.2016
Сообщений: 290
|
![]()
Armageddets Не обращай внимания, он у нас контуженный
![]() Код:
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
![]() |
![]() |
![]() |
![]() |
#6 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
![]() ![]() ![]() Твой ход, "уважаемый". Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#7 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Виталий (по почте) иль Владимир (по скайпу).. (Armageddets который)
Не хотим учиться, всё на грабли наступаем, предлагал же.. Как конструктор вызвать уже подсказали, про перегрузку операторов min@y™ толсто намекнул, но не пояснил. Поясняю: перегрузка операторов (ключевое слово class operator) имеет мало общего с перегрузкой подпрограмм (ключевое слово overload), и доступна перегрузка операторов начиная с дельфи 2009, в отличие от перегрузки подпрограмм (доступной емнип, с дельфи2). Возможно, ещё есть некоторая путаница, если в задании было указано сделать перегруженные варианты самой перегрузки операторов - возможность написать несколько версий работы одного и того же оператора (например, сложения) для разных типов данных, например, просто с числом, и с другим комплексным числом. Чтобы реализовать перегрузку операторов, можно руководствоваться этой статьёй По комплексным числам тоже промашка, общее понимание легко составиь из википедии, суть в том что действительная и мнимая части просто считаются отдельно, тип же данных для них удобно выбрать любой из действительных (а не целых, как сделано в коде), но предпочтение лучше отдать Single или Double. Ещё замечу, что обнулять переменные в деструкторе нет смысла. И делать так проверку программы (та, что по кнопке) с точки зрения инкапсуляции (одного из столпов ООП) - некорректно, т.к. используется хитрая фича дельфи, которая сразу сломается, если класс комплексного числа перенести в другой модуль, а именно возможность доступа к полям класса в том же модуле, где объявлен класс (т.н. дружественность), чтобы этого избежать, надо добавить в класс комплексного числа свойства, доступные только для чтения (т.к. присваивание данных полям должны быть либо в конструкторе, либо в результате написанных Вами операций), ну и для корректности перенести всё же класс в отдельный модуль. Примерный вид кода для свойств: Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработать класс на С# | Sail1993 | Помощь студентам | 1 | 13.02.2015 10:56 |
Комплексное число на Java+C# | goaldjalex | Фриланс | 0 | 04.06.2013 11:26 |
Комплексное число(С++) | _LDA_ | Помощь студентам | 7 | 04.12.2012 20:43 |
найти комплексное число по его модулю | tanek | Помощь студентам | 3 | 04.10.2011 15:25 |
Комплексное число | Владимир_король | Помощь студентам | 1 | 10.05.2010 12:02 |