'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
是一个 成员函数 ,它已经可以访问您所在对象的 成员 变量称它为。在我看来,它不应该接受任何参数,而应该使用那些成员变量。
您的调用将按原样正确。
您好,感谢您抽出宝贵时间。
我是初学者,所以它很明显,抱歉,但我自己弄不明白...:(
在我的任务中,他们要求我构建这个程序并测试 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
是一个 成员函数 ,它已经可以访问您所在对象的 成员 变量称它为。在我看来,它不应该接受任何参数,而应该使用那些成员变量。
您的调用将按原样正确。