在类c ++中的其他私有函数中调用私有参数

时间:2016-01-17 14:18:22

标签: c++ private

您好我有两个问题。首先,这是一些代码。我是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函数的侧面调用bfacediag()参数来计算s = a*b以及如何打印结果。我可以在cout << a; cout << d; cout << ssides()中写下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站点中的常见问题解答?

2 个答案:

答案 0 :(得分:0)

您无法从其他功能访问本地变量。它们仅在该函数执行时存在。

可以做的是定义更多计算所需值的成员函数,例如

double height() const
{ return /* something */; }

double width() const
{ return /* something else */; }

并在需要ab

的地方使用这些功能

答案 1 :(得分:0)

您可以在自己的OWN课程中调用私人函数。

但是,变量ab是局部变量,所以它们不会出现在函数sides()之外,你可以在函数facediag()中做同样的事情计算ab