您好我有两个问题。首先,这是一些代码。我是c ++的新手。我必须通过左上角和右下角的x,y坐标计算矩形的平方 - downRightx,upperLeftx,downRighty,upperLefty,对角线和矩形的边。我必须创建一个函数print(),它只调用其他私有函数来显示结果。一切都在课堂上定义。
class rectangle {
private:
double uLx, uLy, dRx, dRy;
public:
rectangle() {
cout << "enter x coordinate of upper left corner" << uLx;
cout << "enter y coordinate of upper left corner" << uLy;
cout << "enter x coordinate of down right corner" << dRx;
cout << "enter y coordinate of down right corner" << dRy;
}
~rectangle() {
cout << "Deleting object" << endl;
}
private:
void sides() {
double a, b;
a = sqrt(pow((dRx - uLx), 2));
b = sqrt(pow((dRy - uLy), 2));
}
void facediag() {
double s, d;
d = sqrt(pow((dRx - uLx), 2) + pow((dRy - uLy), 2));
---- 1. //here must be the calculation of square s = a*b
}
public:
void print() {
--- 2. //here I must print the results
}
};
所以问题是:如何从a
函数的侧面调用b
和facediag()
参数来计算s = a*b
以及如何打印结果。我可以在cout << a; cout << d; cout << s
和sides()
中写下facediag()
等,并在print
中调用它们吗?或者我可以在print()
中打印它们而无需在其他函数中编写cout << ...
,否则可以使用另一种访问方法。
void facediag(){
//code
cout << s;
cout << d;
}
void sides(){
// code
cout << a;
cout << b;
}
void print()
{
sides();
facediag();
}// not like this, is there another way?
第二个问题我让Cygwin以完整的形式安装,并且在某些时候我意识到我将耗尽硬盘并且安装挂起,所以我中断了安装。如何卸载它 - 只需删除文件夹或逐步浏览Cygwin站点中的常见问题解答?
答案 0 :(得分:0)
您无法从其他功能访问本地变量。它们仅在该函数执行时存在。
可以做的是定义更多计算所需值的成员函数,例如
double height() const
{ return /* something */; }
double width() const
{ return /* something else */; }
并在需要a
或b
。
答案 1 :(得分:0)
您可以在自己的OWN课程中调用私人函数。
但是,变量a
和b
是局部变量,所以它们不会出现在函数sides()
之外,你可以在函数facediag()
中做同样的事情计算a
和b