メンバー ポインターは、メンバーが実行時に決定される場合でも、オブジェクトのメンバー変数またはメンバー関数にアクセスして操作するために C++ で使用されます。これらは、メンバーにアクセスするための柔軟な方法を提供し、動的バインディングと汎用プログラミングをサポートします。
C++ でのメンバー ポインターの使用
メンバー ポインターは、クラスのメンバー変数またはメンバー関数へのポインターです。これらは、メンバーが実行時に決定される場合でも、クラス メンバーにアクセスして操作するための柔軟な方法を提供します。
構文
メンバー ポインターの構文は次のとおりです:
type (Class::*memberName);
ここで:
type
はメンバー変数またはメンバー関数の型です。 type
是成员变量或成员函数的类型。Class
是类名。memberName
是成员名。创建成员指针
可以创建指向成员变量和指向成员函数的成员指针:
// 指向成员变量 int (Class::*memberVariablePtr); // 指向成员函数 void (Class::*memberFunctionPtr)(int);
使用成员指针
可以通过使用 ->
运算符来调用成员指针:
// 指向成员变量 int value = obj->*memberVariablePtr; // 指向成员函数 obj->*memberFunctionPtr(10);
实战案例 - 比较对象
考虑一个具有 name
和 age
两个成员变量的 Person
类:
class Person { public: string name; int age; };
使用成员指针,我们可以创建比较 Person
对象的方法:
bool comparePerson(const Person& p1, const Person& p2) { return p1.*age < p2.*age; }
此函数通过成员指针访问 age
Class
はクラス名です。 memberName
はメンバー名です。
->
演算子を使用して呼び出すことができます Memberポインター: 🎜rrreee🎜🎜 実際のケース - 比較オブジェクト🎜🎜🎜 2 つのメンバー変数: name
と age
を持つ person
クラスを考えてみましょう: 🎜rrreee 🎜メンバー ポインターを使用して、person
オブジェクトを比較するメソッドを作成できます。 🎜rrreee🎜この関数は、メンバー ポインターを通じて age
メンバー変数にアクセスし、それを比較に使用します。 🎜🎜🎜利点🎜🎜🎜メンバー ポインターには次の利点があります: 🎜🎜🎜実行時にクラス メンバーに動的にアクセスします。 🎜🎜オブジェクトアクセスをカプセル化する簡潔な方法を提供します。 🎜🎜汎用プログラミング パラダイムの使用を許可します。 🎜🎜以上がC++ でのメンバー ポインターの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。