5

OOPについて基本的な質問があります。このクラスの2つのオブジェクトを引数として使用し、これらのオブジェクトの属性に基づいてfloat値を返すメソッドをクラス内に作成したいと思います。

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 に答える