private与protected的使用(继承与派生)
class base{
private:
int a1;
protected:
int b1;
public:
base(int a, int b) :a1(a), b1(b){}
~base(){};
void show(){
cout << a1 << " " << b1 << " " << endl;
}
};
class base1 :public base
{
public:
int c1;
public:
base1(int a1, int b1, int c1) :base(a1, b1), c1(c1){} //派生类的构造函数
~base1(){}
void show1(){
cout <</* "a1"<<*/" " << b1<< " " <<c1 << " "<<endl; //原本空格前还有a1,报错,只能直接使用protected而不能使用private
}
};
int main()
{
base a1(5, 9);
a1.show();
base1 a2(60, 8, 6);
a2.show1();
a2.show(); //派生类可以调用基类函数,而不能反向使用
}
运行结果:
派生类可以直接使用基类的protect而不能使用private