繁体   English   中英

如何使用公共成员函数(派生类)访问私有成员变量?

[英]How do I access private member variables with public member functions (derived class)?

我需要使用派生类中的公共成员函数访问基类私有成员变量。 这意味着,我可以随时在派生类的公共成员函数中调用它并随时更改它。

例如:

# include <iostream>
using namespace std;

class A
{
private:
    int a = 19;
    public:
    int getA() // Function to get A
    {
        return a;
    }
};

class B : public A
{
    public:
    void getAatB() // How do I get a variable at parent class (A)?
    {
        cout<<getA();
    }
};

int main()
{
    B a;
    a.getAatB();
    return 0;
}

我需要访问变量 a。 如何在不将 A 类的private更改为protectedpublic的情况下执行此操作?

最简单的方法是添加friend class B; 到 A 类,因此 B 类可以访问 A 类的属性,您不需要将私有更改为受保护。

如果您只希望A的后代可以访问getA()成员函数,则 c++ 中有一个特殊的关键字protected 如此处所述 protected的目的是。

声明为受保护的类成员只能由以下人员使用:

  • 最初声明这些成员的类的成员函数。

  • 最初声明这些成员的类的朋友。

  • 从最初声明这些成员的类派生的具有公共或受保护访问权限的类。

  • 直接私有派生类,它们也对受保护成员具有私有访问权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM