如何通过C++成员函数指针访问私有成员
导读:在 C++ 中,可以通过使用成员函数指针和类的友元来访问私有成员。以下是一个简单的示例代码: #include <iostream> class MyClass { private: int privateMember...
在 C++ 中,可以通过使用成员函数指针和类的友元来访问私有成员。以下是一个简单的示例代码:
#include <
iostream>
class MyClass {
private:
int privateMember;
public:
MyClass(int value) : privateMember(value) {
}
int getPrivateMember() {
return privateMember;
}
// 声明为友元函数
friend int getPrivateMemberUsingPointer(MyClass* obj);
}
;
// 友元函数定义
int getPrivateMemberUsingPointer(MyClass* obj) {
return obj->
privateMember;
}
int main() {
MyClass obj(42);
// 使用成员函数指针访问私有成员
int (MyClass::*ptr)() = &
MyClass::getPrivateMember;
std::cout <
<
"Private member value: " <
<
(obj.*ptr)() <
<
std::endl;
// 使用友元函数访问私有成员
std::cout <
<
"Private member value using friend function: " <
<
getPrivateMemberUsingPointer(&
obj) <
<
std::endl;
return 0;
}
在上面的示例中,我们声明了一个友元函数 getPrivateMemberUsingPointer
来访问私有成员 privateMember
。同时,我们还定义了一个成员函数指针 ptr
,用于访问私有成员。通过这两种方式,我们可以成功访问并输出私有成员的值。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过C++成员函数指针访问私有成员
本文地址: https://pptw.com/jishu/683301.html