|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.02.2010, 17:16 | #1 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 89
|
Вычисление угла и радиуса вектора [C++]
В задание нужно подсчитать радиус и угол фи и вывести с помощью метода вывода результаты на экран. Также нужно использовать в программе дружественную функцию.
Вот выкладываю свой код. Пользуюсь компилятором Visual studio professional 2008. В функции double polarRadius() cpp файла компилятор жалуется на то, что эти переменные m_x1, m_x2, m_y1, m_y2 не описанные. Тогда я не совсем понимаю назначение дружественных. Если она имеет права доступа к private переменным, то почему оно выдает ошибки на то что функции подсчета радиуса объявленные закрытыми. Объясните пожалуйста что я не так правильно понял и сделал в программе. vector.h Код:
Код:
Код:
Последний раз редактировалось ArniLand; 27.02.2010 в 18:54. |
27.02.2010, 17:41 | #2 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
А ссылку на объект Вы передавать в функцию не пробовали?
Код:
|
27.02.2010, 18:32 | #3 | |
Пользователь
Регистрация: 27.06.2009
Сообщений: 89
|
добавил ссылку на объект как вы показали выше, но всеравно выдает ошибки
Цитата:
|
|
27.02.2010, 18:38 | #4 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
counter, немного ошиблись
Код:
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
27.02.2010, 18:44 | #5 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
Greblin, точно! Хотел подправить да не успел.
ArniLand, прототип функции в описании класса не забыли изменить на double polarRadius(Vector &) ? |
27.02.2010, 18:54 | #6 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 89
|
изменил все как вы сказали. Уже не сильно понимаю что тогда не так. Вот все компилятор выдает ошибки:
Код:
vector.h Код:
Код:
Код:
Последний раз редактировалось ArniLand; 27.02.2010 в 18:56. |
27.02.2010, 19:02 | #7 | |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
Цитата:
Код:
|
|
27.02.2010, 19:20 | #8 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 89
|
counter, извините за мою не внимательность. Спасибо за помощь.
Буду нагонять мат часть по ссылкам и указателям, так как позабыл уже про них. Не могли бы вы объяснить пожалуйста, для чего мы передаем в качестве ссылки на объект в функцию и для чего в прототипе функции использовали в качестве параметров Vector и операцию разыменования? |
27.02.2010, 19:45 | #9 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
Дружественная функция не является членом класса, следовательно, ей надо передавать объект, с которым имеем дело
Ссылку передаём, чтобы не создавать локальную копию объекта this - это указатель на объект, а мы хотим передать ссылку на сам объект, поэтому и разыменовываем. Можно было бы передавать сам указатель, но тогда в функции к полям класса надо было бы обращаться через ->
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нахождение тангенса угла наклона (С++) | decompressed | Помощь студентам | 5 | 31.01.2010 20:06 |
Поиск высоты и радиуса цилиндрического бака [Delphi] | StudeHt | Помощь студентам | 8 | 06.01.2010 02:51 |
паскаль - центр описанной окружност min радиуса | Pensioner | Помощь студентам | 3 | 19.03.2009 08:51 |
Опредилите попадает ли точка с координатами(х,у) в круг радиуса R | Dog | Помощь студентам | 2 | 19.05.2008 19:14 |