'Too few arguments' - 我无法使用对象中的给定值来使用 Class 函数

'Too few arguments' - I can't use the given Values in the Object to use Class Functions

您好,感谢您抽出宝贵时间。

我是初学者,所以它很明显,抱歉,但我自己弄不明白...:(

在我的任务中,他们要求我构建这个程序并测试 Class banderas_Triang 中的功能。如您所见,我尝试这样做的方式是构建一个 Class 对象并为其提供一些参数,如下所示:

banderas_Triang triang1(50, 50, 50);

之后,我想测试名为arTriang()的函数;使用上面输入的值...

所以我这样走:

cout << banderas_triang.triang1();

这里是我得到错误的地方...它说 'too few arguments'。我知道这意味着我应该将值放在函数的 () 中。但是我想用我给Obj triang1的那些。

如何使用triang1中输入的参数,用class的函数计算面积之类的东西?

顺便说一句,我的代码很可笑,抱歉这是我的第一个项目...我似乎无法让它工作...

代码如下:

#include <iostream>
using namespace std;

class bandera_Triang {
private:
    float aSide, bSide, cSide;

public:
    bandera_Triang(){ //Cost. sin Param...
        aSide = 0;
        bSide = 0;
        cSide = 0;
    }
    bandera_Triang(float A, float B, float C){ //Const. con Param...
        aSide = A;
        bSide = B;
        cSide = C;
    }

    //Sets...
    void set_A(float A){ aSide = A; }
    void set_B(float B){ bSide = B; }
    void set_C(float C){ cSide = C; }

    //Gets...
    float get_A(){ return aSide; }
    float get_B(){ return bSide; }
    float get_C(){ return cSide; }

    //~bandera_Triang();



    bool esTriang(){ //Desigualdad Triangular...
        if (aSide < bSide + cSide && bSide < aSide + cSide && cSide < aSide + bSide) {
            return true;
        }
        else
            return false;
    }

    string triangOno(bool esTriang()){ //Print si es o no triangulo...
        if (esTriang() == true){
            return "Es Triangulo.";
        }
        else { return "NO es Triangulo."; }
    }

    string tipoTriang(){
        if (aSide == bSide && bSide == cSide){
            return "El triangulo es Equilatero.";
        }
        else
        if (aSide == bSide || aSide == cSide || bSide == cSide){
            return "El triangulo es Isosceles. ";
        }
        return "El triangulo es Escaleno.";
    }

    float arTriang(float aSide, float bSide, float cSide){ //Area Triangulo con F.Heron.

        float SemiPerim = 0;
        float areaTriang = 0; //Variables locales para calculo.

        SemiPerim = (aSide + bSide + cSide) / 2; //Calculo de Semiperimetro.

        areaTriang = sqrt((SemiPerim * (SemiPerim -aSide) * (SemiPerim - bSide) * (SemiPerim - cSide)));

        return areaTriang;
    }


}; //Fin Clase Triangulo



//Inicia Main

int main(){
    bandera_Triang triangA(50, 50, 50); //this should pass the given values to
                                        // the class triangle so it can do things...


    cout << triangA.arTriang(); //it should calc the triangles area, instead it tells me 'too few
                                // arguments... what am i doing wrong?



    system("pause");
}

你真的很接近!

由于 arTriang 是一个 成员函数 ,它已经可以访问您所在对象的 成员 变量称它为。在我看来,它不应该接受任何参数,而应该使用那些成员变量。

您的调用将按原样正确。