======= RESTART: C:/listByMap.py =======
['b', 'c', 'a', 'z', 'b', 'c']
['c', 'd', 'b', 'z', 'c', 'd']
现在,派生类有公共成员:
class base {
public:
int getC() {return c;}
int a;
protected:
int b;
private:
int c;
}
class derived: public base {
public:
int getD() {return d;}
private:
int d;
}
受保护的成员:
int getC() {return c;}
int getD() {return d;}
int a;
私人会员:
int b;
如果
int d;
是派生类的私有成员,我无法确认。很明显,int c;
的任何新成员功能都无法访问class derived
。因此,如果c
是c
的私人成员,则class derived
的成员函数应有权访问class derived
。那么c
是什么类的成员派生出来的呢?
答案 0 :(得分:1)
派生类不会继承对私有数据成员的访问权限。但是,它确实继承了一个完整的父对象,该对象包含该类声明的任何私有成员。
看看这个question
答案 1 :(得分:0)
我将以一个例子来澄清这一点。
现在提出问题,每个类访问修饰符都有以下安排
基础
private : int c;
protected : int b;
public : int getC() {return c;}
int a;
派生
private : int d; (derived will never know c's existense)
protected : int b; (base class's copy)
public : int getC() {return c;}
int a;
int getD() {return d;}