我遇到了一个 C++ 问题。我有一个基类,它在类的私有(private)可见区域内有一个自引用对象指针。我在基类中有一个构造函数来初始化这两个指针。现在我的派生类的访问说明符是私有(private)的(我想将基类的公共(public)成员函数设为私有(private))。现在通过我的派生类的成员函数,我想创建一个对象指针,它可以指向基类的私有(private)数据,即那些自引用对象指针。我的代码是:
class base{
private:
base *ptr1;
int data;
public:
base(){}
base(int d) { data=d }
};
class derived:private base{
public:
void member()
};
void derived::member()
{
base *temp=new base(val); //val is some integer
temp->ptr1=NULL; //I can't make this happen. To do this I had to declare all the
//private members of the base class public.
}
最佳答案
派生类不能访问其基类的私有(private)成员。任何类型的继承都不允许访问私有(private)成员。
但是,如果您使用 friend
声明,您可以这样做。
关于c++ - 如何让派生类访问私有(private)成员数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18944451/