C++继承机制中有三种访问控制符:private,protected和public,其中private是默认的访问控制符。
那么三种不同的继承方式中,子类可以访问父类的那些成员呢?
public:
1、父类的公有成员和保护成员在子类中仍是公有和保护成员,子类的成员函数可以访问父类的公有和保护成员,子类的对象可以访问父类的公有成员;
2、对于父类的私有成员,子类的成员函数和子类的对象都不可以访问。
protected:
1、父类的非私有成员在子类中都变为保护成员,可以由子类的成员函数访问,但不能由子类的对象访问;
2、对于父类的私有成员,子类的成员函数和子类的对象都不可以访问。
private:
1、父类的非私有成员呢在子类中都变为私有成员,只能通过子类的成员函数间接访问,子类的对象不可以访问;
间接访问:子类的成员函数通过调用基类的成员函数来访问(调用方式:基类::基类成员函数)
2、对于父类的私有成员,子类的成员函数和子类的对象都不可以访问。
补充:在子类中调用基类的同名函数时应在函数调用前添加上作用域限定符,指明函数为基类所有。