首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从派生类到基类ptr访问受保护的基类函数

要从派生类到基类ptr访问受保护的基类函数,可以使用以下方法:

  1. 使用友元函数

在基类中声明一个友元函数,该函数可以访问基类的受保护成员。然后,在派生类中实现该友元函数,并使用基类的指针访问受保护成员。

代码语言:cpp
复制
class Base {
protected:
    int protected_member;

    friend void accessProtectedMember(Base* ptr);
};

class Derived : public Base {
public:
    void accessProtectedMember() {
        accessProtectedMember(this);
    }
};

void accessProtectedMember(Base* ptr) {
    ptr->protected_member = 42;
}
  1. 使用虚函数

在基类中声明一个虚函数,该函数可以访问基类的受保护成员。然后,在派生类中重写该虚函数,并使用基类的指针访问受保护成员。

代码语言:cpp
复制
class Base {
protected:
    int protected_member;

    virtual void accessProtectedMember() {
        protected_member = 42;
    }
};

class Derived : public Base {
public:
    void accessProtectedMember() override {
        Base::accessProtectedMember();
    }
};
  1. 使用访问函数

在基类中声明一个访问函数,该函数可以访问基类的受保护成员。然后,在派生类中继承该访问函数,并使用基类的指针访问受保护成员。

代码语言:cpp
复制
class Base {
protected:
    int protected_member;

    void accessProtectedMember() {
        protected_member = 42;
    }
};

class Derived : public Base {
public:
    using Base::accessProtectedMember;
};

在这些方法中,使用访问函数和虚函数可能更符合面向对象的设计原则,因为它们允许更好的封装和灵活性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券