与对象无关的方法

Bua*_*aXD 5 c++

我有一个关于OOP的基本问题.我想在类中创建一个方法,该方法使用此类的2个对象作为参数,并根据这些对象的属性返回浮点值.

public float MyMethod(CMyClass obj1, CMyclass obj2)
Run Code Online (Sandbox Code Playgroud)

当我想在main()中使用这个方法时我不能这样做:

CMyClass o1 = CMyClass();
CMyClass o2 = CMyClass();
float x = MyMethod(o1, o2);
Run Code Online (Sandbox Code Playgroud)

我看不到这个方法,因为它与一个对象有关.我可以像这样访问它:

o1.MyMethod(...) 
Run Code Online (Sandbox Code Playgroud)

但这没有意义.

nog*_*ard 3

您可以声明该方法static,然后像这样访问它MyClass::MyMethod

class MyClass {
public:
    static void MyMethod(const MyClass & arg1, const MyClass & arg2) {}
};
Run Code Online (Sandbox Code Playgroud)