我不知道如何做到这一点,我一直在为它工作几个小时。我的教科书中只有一个朋友班的例子。坐标类的极坐标到矩形转换的朋友函数
这是问题“构建体命名坐标类含有两个双精度变量 命名XVAL和yval,用于一个点的x和y值存储在矩形坐标。 的类的方法应包括构造和显示方法和一个名为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;
}
除非您有具体问题/问题/错误,否则此处不重要,应移至http://codereview.stackexchange.com – smci 2015-02-07 02:50:34
此外,[tag:r]标记用于R编程语言。不是当你有一个名为R的变量时;-) – smci 2015-02-07 02:51:19
'ConvPol'的声明,作为Coord类中的朋友,与要求不符。试试'friend void ConvPol(Coord&point,double rho,double theta);' – 2015-02-07 02:52:20