我不知道如何做到這一點,我一直在爲它工作幾個小時。我的教科書中只有一個朋友班的例子。座標類的極座標到矩形轉換的朋友函數
這是問題「構建體命名座標類含有兩個雙精度變量 命名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