C++/Wskaźniki do elementów składowych
W C++ możesz używać wskaźników, aby uzyskać dostęp do członków klasy. Aby użyć wskaźników do członków klasy, musisz użyć operatora wskaźnika do elementu członkowskiego ->* lub operatora wskaźnika do elementu członkowskiego obiektu .*.
Oto przykład:
#include <iostream>
using namespace std;
class MyClass {
public:
int myInt;
void myFunction() {
cout << "Hello from myFunction!" << endl;
}
};
int main() {
MyClass obj;
obj.myInt = 42;
void (MyClass::*funcPtr)() = &MyClass::myFunction;
int MyClass::*intPtr = &MyClass::myInt;
// Accessing a member function using a pointer
(obj.*funcPtr)();
// Accessing a data member using a pointer
cout << obj.*intPtr << endl;
return 0;
}
W tym przykładzie definiujemy klasę MyClass ze składową danych myInt i funkcją składową myFunction. Następnie tworzymy instancję klasy o nazwie obj. Definiujemy również funkcję wskaźnika do elementu członkowskiego o nazwie funcPtr, która wskazuje na funkcję elementu członkowskiego myFunction, oraz wskaźnik do danych elementu członkowskiego o nazwie intPtr, który wskazuje element członkowski danych myInt.
Aby uzyskać dostęp do funkcji składowej za pomocą funkcji wskaźnika do składowej, używamy operatora .* z instancją klasy (obj) i funkcji wskaźnika do składowej (funcPtr), ujętych w nawiasy.
Aby uzyskać dostęp do składowej danych za pomocą wskaźnika do danych składowych, używamy operatora .* z instancją klasy (obj) i wskaźnika do danych składowych (intPtr), a następnie używamy instrukcji cout do wyprowadź wartość.
Należy pamiętać, że wskaźniki do członków klasy są zwykle używane w zaawansowanych scenariuszach programowania i należy ich używać ostrożnie, aby uniknąć niezamierzonego zachowania.