У меня нет подсказки, как это сделать, я работал над этим часами. В моем учебнике есть только один пример классов друзей.Функция друга класса Координаты для преобразования по полю прямоугольника
Это вопрос "Построить класс с именем Coord, содержащего две двойной точности переменные с именем xval и yval, используемый для хранения х и у значений точки в прямоугольных координатах. Методы класса должны включать в себя конструктор и дисплей методы и функцию друга с именем convPol(). Функция convPol() должна принимать два числа двойной точности, r и theta, представляя точку в полярных координатах и преобразовывать их в прямоугольные координаты. Для преобразования от полярных координат в прямоугольные , используйте следующие формулы: x = r cos (theta) y = r sin (theta) "
Это то, что я придумал, но я знаю, что делаю это неправильно. У меня просто нет хорошей точки отсчета, поскольку в целом учебнике есть только один отвратительный пример и почти совсем другой. чтобы быть более конкретным Я не знаю, где использовать координацию & (как указать номер), и я знаю, что я не должен был использовать указатели. Может ли кто-нибудь указать мне в правильном направлении, пожалуйста?
Это мой код:
#include <iostream>
#include <cmath>
using namespace std;
//ƒclassƒdeclarationƒsection
void ConvPol(double r,double theta, double& xval, double& yval)
{
double x,y;
xval=r*cos(theta);
yval=r*sin(theta);
return;
}
class Coord
{
//ƒfriendsƒlist
friend double ConvPol(Coord&);
private:
double xval;
double yval;
public:
Coord (double = 0, double = 0); //ƒconstructor
void display();
};
//ƒclassƒimplementationƒsection
Coord::Coord(double x, double y)
{
xval = x;
yval = y;
}
void Coord::display()
{
cout <<xval<<","<<yval;
return;
}
//ƒfriendƒimplementations
void time(double, double, double&, double&);
int main()
{ double xval,yval;
ConvPol(1,5,xval,yval);
Coord a(xval,yval);
a.display();
return 0;
}
Если у вас есть конкретный вопрос/проблема/ошибка, здесь это offtopic и его нужно переместить на http://codereview.stackexchange.com. – smci
Кроме того, тег [tag: r] относится к языку программирования R. Не когда у вас есть переменная под названием R ;-) – smci
Объявление 'ConvPol', как друга в классе' Coord', не соответствует требованиям. Попробуйте 'friend void ConvPol (координата и точка, double rho, double theta);' –