如何通过C++成员函数指针访问私有成员

   2024-10-08 6670
核心提示:在 C++ 中,可以通过使用成员函数指针和类的友元来访问私有成员。以下是一个简单的示例代码:#include iostreamclass MyClass {p

在 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,用于访问私有成员。通过这两种方式,我们可以成功访问并输出私有成员的值。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号