![](/img/trans.png)
[英]How do I inherit private member variables and public functions from another file?
[英]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
更改为protected
或public
的情况下执行此操作?
最简单的方法是添加friend class B;
到 A 类,因此 B 类可以访问 A 类的属性,您不需要将私有更改为受保护。
如果您只希望A
的后代可以访问getA()
成员函数,则 c++ 中有一个特殊的关键字protected
。 如此处所述, protected
的目的是。
声明为受保护的类成员只能由以下人员使用:
最初声明这些成员的类的成员函数。
最初声明这些成员的类的朋友。
从最初声明这些成员的类派生的具有公共或受保护访问权限的类。
直接私有派生类,它们也对受保护成员具有私有访问权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.