类的继承有public、protected、private三种。派生类通过不同的继承方式可以获得对基类成员的不同访问属性。
派生类对基类成员的访问主要有两种:一是派生类新增成员对基类成员的访问。二是派生类对象对基类成员的访问。
当继承方式为public时,派生类对基类中的公有和保护成员访问属性不变,对基类的私有成员不能访问。即基类的公有和保护成员继承到派生类中以后同样成为派生类的公有和保护成员。但派生类对象和新增成员都不能访问基类的私有成员。
#include<iostream>
using namespace std;
class Base
{
public:
void SetTwo(int x,int y){a=x;b=y;}
int GetA(){return a;}
int GetB(){return b;}
private:
int a,b;
};
class Derived : public Base
{
public:
void SetThree(int x,int y,int z){SetTwo(x,y);c=z;}
//新增成员函数对基类的访问,函数实现调用基类的公有函数
int GetC(){return c;}
private:
int c; //新增私有成员
};
int main()
{
Derived d;
d.SetThree(1,2,3);
cout<<d.GetA()<<" "<<d.GetB()<<" "<<d.GetC()<<endl;//调用基类的公有接口,不能直接访问基类私有成员
return 0;
}