class Student1:public Student/声明派生类Student1 { public: void display_1() { cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; cout<<"age:"<<age<<endl; cout<<"address:"<<addr<<endl; } private: int age; string addr; 2017年4月26日星期 第11章继承与派生 17 H0画2时16分24秒 BACK NEXT
HOME2017年4月26日星期 三12时16分24秒 第11章 继承与派生 17 class Student1: public Student //声明派生类Student1 { public: void display_1( ) { cout<<" num: "<<num<<endl; cout<<" name: "<<name<<endl; cout<<" sex: "<<sex<<endl; cout<<" age: "<<age<<endl; cout<<" address: "<<addr<<endl; } private: int age; string addr; };
int main() { Student1 stud1; stud1.displayO; stud1.display_1(); stud1.age=18; stud1.num=10023; return 0; 2017年4月26日星期 第11章继承与派生 18 0雪2时16分24秒 BACK NEXT
HOME2017年4月26日星期 三12时16分24秒 第11章 继承与派生 18 int main( ) { Student1 stud1; stud1.display(); stud1.display_1( ); stud1.age=18; stud1.num=10023; return 0; }
11.4.2私有继承 用私有继承方式建立的派生类称为私有派生类 (private derived class),其基类称为私有基类 private base class)。 私有基类的公用成员和保护成员在派生类中的 访问属性相当于派生类中的私有成员 私有基类的私有成员在派生类中成为不可访问 的成员。 017年4月26日星期 第11章继承与派生 HOME 12时16分24秒 BACK NEXT
HOME2017年4月26日星期 三12时16分24秒 第11章 继承与派生 19 用私有继承方式建立的派生类称为私有派生类 (private derived class) ,其基类称为私有基类 (private base class)。 私有基类的公用成员和保护成员在派生类中的 访问属性相当于派生类中的私有成员。 私有基类的私有成员在派生类中成为不可访问 的成员
基类A 派生类B 派生类B public: public: public: inti,j; 私有继承 int i,j; int m,n; private: private: private: int k; int k; int i,j,p; public: 声明派生类 int m,n; 新增的成员 private: int p; (a) (b) (c) 2017年4月26日星期 第11章继承与派生 20 H0雪2时16分24秒 BACK NEXT
HOME2017年4月26日星期 三12时16分24秒 第11章 继承与派生 20
私有基类的私有成员只能被基类的成员函数引 用,在基类外不能访问他们,因此它们在派 生类中是隐蔽的,不可访问的。 对于不需要再往下继承的类的功能可以用私有 继承方式把它隐蔽起来,这样,下一层的派 生类无法访问它的任何成员。 一个成员在不同的派生层次中的访问属性与 继承方式有关。 2017年4月26日星期 第11章继承与派生 0雪2时16分24秒 BAC
HOME2017年4月26日星期 三12时16分24秒 第11章 继承与派生 21 私有基类的私有成员只能被基类的成员函数引 用,在基类外不能访问他们,因此它们在派 生类中是隐蔽的,不可访问的。 对于不需要再往下继承的类的功能可以用私有 继承方式把它隐蔽起来,这样,下一层的派 生类无法访问它的任何成员。 一个成员在不同的派生层次中的访问属性与 继承方式有关