我是否要在c ++中创建一个使用类方法的Object?

1 c++ class c++builder

我正在尝试在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;,请告诉我如何.

Rem*_*eau 6

对于您的尝试,请声明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)