5

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

public float MyMethod(CMyClass obj1, CMyclass obj2)

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

CMyClass o1 = CMyClass();
CMyClass o2 = CMyClass();
float x = MyMethod(o1, o2);

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

o1.MyMethod(...) 

但这没有意义。

4

3 回答 3

3

您可以声明该方法static,并像访问它一样MyClass::MyMethod

class MyClass {
public:
    static void MyMethod(const MyClass & arg1, const MyClass & arg2) {}
};
于 2012-10-15T16:40:24.250 回答
3

由于您想访问这些属性,请使用朋友功能(非成员)。你可以在你的类中声明它:

friend float MyMethod(CMyClass obj1, CMyclass obj2);
于 2012-10-15T16:41:54.980 回答
1

你要

static float MyMethod(CMyClass obj1, CMyclass obj2)

static这里的关键字将使方法属于类,而不是类/对象的单个实例。访问为CMyClass::MyMethod.

于 2012-10-15T16:40:38.087 回答