我正在尝试在C++ Builder中创建一个简单的Form,我正在尝试adding()在类中创建一个方法,但如果可以的话,我不想创建一个对象只是为了使用一个方法而不是'保存任何值.
这是类文件的来源:
class Op{
public:
double adding(double x, double y);
};
double Op::adding(double x, double y){
return x + y;
}
Run Code Online (Sandbox Code Playgroud)
这是调用按钮的动作:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double value1 = text1->Text.ToDouble();
double value2 = text2->Text.ToDouble();
double result = Op.adding(value1, value2);
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个编译错误:
不正确使用typedef'Op'
如果我必须创建对象Op operations;,请告诉我如何.
对于您的尝试,请声明adding()为static:
class Op{
public:
static double adding(double x, double y);
};
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样调用它:
double result = Op::adding(value1, value2);
Run Code Online (Sandbox Code Playgroud)
如果你没有声明它static,你确实需要先创建一个对象,例如:
Op operation;
double result = operation.adding(value1, value2);
Run Code Online (Sandbox Code Playgroud)
要么:
double result = Op().adding(value1, value2);
Run Code Online (Sandbox Code Playgroud)
或者,如果使用C++ Builder的基于Clang的编译器之一:
double result = Op{}.adding(value1, value2);
Run Code Online (Sandbox Code Playgroud)