七章继承--2说课材料

上传人:yuzo****123 文档编号:137605771 上传时间:2020-07-10 格式:PPT 页数:82 大小:806.50KB
返回 下载 相关 举报
七章继承--2说课材料_第1页
第1页 / 共82页
七章继承--2说课材料_第2页
第2页 / 共82页
七章继承--2说课材料_第3页
第3页 / 共82页
七章继承--2说课材料_第4页
第4页 / 共82页
七章继承--2说课材料_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《七章继承--2说课材料》由会员分享,可在线阅读,更多相关《七章继承--2说课材料(82页珍藏版)》请在金锄头文库上搜索。

1、7.2.1 访问控制,3.保护继承,派生类定义了与基类同名的成员,在派生类中访问同名成员 时屏蔽了基类的同名成员 在派生类中使用基类的同名成员,显式地使用类名限定符: 类名 : 成员,7.2.2 重名成员,7.2.2 重名成员,例: class base public : int a , b ; ; class derived : public base public : int b , c ; ; void f () derived d ; d . a = 1 ; d . base : b = 2 ; d . b = 3 ; d . c = 4 ; ;,7.2.2 重名成员,1.重名数据成员

2、,base a b,derived a b bc,例: class base public : int a , b ; ; class derived : public base public : int b , c ; ; void f () derived d ; d . a = 1 ; d . base : b = 2 ; d . b = 3 ; d . c = 4 ; ;,7.2.2 重名成员,1.重名数据成员,base a b,derived a b bc,例: class base public : int a , b ; ; class derived : public base

3、 public : int b , c ; ; void f () derived d ; d . a = 1 ; d . base : b = 2 ; d . b = 3 ; d . c = 4 ; ;,7.2.2 重名成员,访问从base 类继承的 b,base a b,derived a b bc,1.重名数据成员,例: class base public : int a , b ; ; class derived : public base public : int b , c ; ; void f () derived d ; d . a = 1 ; d . base : b = 2

4、 ; d . b = 3 ; d . c = 4 ; ;,7.2.2 重名成员,访问derived 类定义 的数据成员b,base a b,derived a b bc,1.重名数据成员,例: class base public : int a , b ; ; class derived : public base public : int b , c ; ; void f () derived d ; d . a = 1 ; d . base : b = 2 ; d . b = 3 ; d . c = 4 ; ;,7.2.2 重名成员,访问derived 类 定义的数据成员c,base a

5、b,derived a b bc,1.重名数据成员,例: class base public : int a , b ; ; class derived : public base public : int b , c ; ; void f () derived d ; d . a = 1 ; d . base : b = 2 ; d . b = 3 ; d . c = 4 ; ;,7.2.2 重名成员,base a b,derived a b bc,基类成员的作用域延伸到所有派生类 派生类的重名成员屏蔽基类的同名成员,1.重名数据成员,/例7-4 #include class A publi

6、c: int a1, a2 ; A( int i1=0, int i2=0 ) a1 = i1; a2 = i2; void print() cout a1= a1 t a2= a2 endl ; ; class B : public A public: int b1, b2 ; B( int j1=1, int j2=1 ) b1 = j1; b2 = j2; void print()/定义同名函数 cout b1= b1 t b2= b2 endl ; void printAB() A:print() ;/派生类对象调用基类版本同名成员函数 print() ;/派生类对象调用自身的成员函数

7、 ; void main() B b ; b.A:print();b.printAB(); ,7.2.2 重名成员,2.重名成员函数,void print() cout a1= a1 t a2= a2 endl ; ,void print()/定义同名函数 cout b1= b1 t b2= b2 endl ; ,/例7-4 #include class A public: int a1, a2 ; A( int i1=0, int i2=0 ) a1 = i1; a2 = i2; void print() cout a1= a1 t a2= a2 endl ; ; class B : pub

8、lic A public: int b1, b2 ; B( int j1=1, int j2=1 ) b1 = j1; b2 = j2; void print()/定义同名函数 cout b1= b1 t b2= b2 endl ; void printAB() A:print() ;/派生类对象调用基类版本同名成员函数 print() ;/派生类对象调用自身的成员函数 ; void main() B b ; b.A:print();b.printAB(); ,7.2.2 重名成员,2.重名成员函数,void print() cout a1= a1 t a2= a2 endl ; ,void

9、print()/定义同名函数 cout b1= b1 t b2= b2 endl ; ,派生类屏蔽基类同名成员函数 调用自身的成员函数,/例7-4 #include class A public: int a1, a2 ; A( int i1=0, int i2=0 ) a1 = i1; a2 = i2; void print() cout a1= a1 t a2= a2 endl ; ; class B : public A public: int b1, b2 ; B( int j1=1, int j2=1 ) b1 = j1; b2 = j2; void print()/定义同名函数 c

10、out b1= b1 t b2= b2 endl ; void printAB() A:print() ;/派生类对象调用基类版本同名成员函数 print() ;/派生类对象调用自身的成员函数 ; void main() B b ; b.A:print();b.printAB(); ,7.2.2 重名成员,2.重名成员函数,void print() cout a1= a1 t a2= a2 endl ; ,void print()/定义同名函数 cout b1= b1 t b2= b2 endl ; ,派生类对象调用从基类继承的同名成员函数,/例7-4 #include class A pub

11、lic: int a1, a2 ; A( int i1=0, int i2=0 ) a1 = i1; a2 = i2; void print() cout a1= a1 t a2= a2 endl ; ; class B : public A public: int b1, b2 ; B( int j1=1, int j2=1 ) b1 = j1; b2 = j2; void print()/定义同名函数 cout b1= b1 t b2= b2 endl ; void printAB() A:print() ;/派生类对象调用基类版本同名成员函数 print() ;/派生类对象调用自身的成员

12、函数 ; void main() B b ; b.A:print();b.printAB(); ,7.2.2 重名成员,2.重名成员函数,void print() cout a1= a1 t a2= a2 endl ; ,void print()/定义同名函数 cout b1= b1 t b2= b2 endl ; ,基类this指针 指向派生类对象,/例7-4 #include class A public: int a1, a2 ; A( int i1=0, int i2=0 ) a1 = i1; a2 = i2; void print() cout a1= a1 t a2= a2 end

13、l ; ; class B : public A public: int b1, b2 ; B( int j1=1, int j2=1 ) b1 = j1; b2 = j2; void print()/定义同名函数 cout b1= b1 t b2= b2 endl ; void printAB() A:print() ;/派生类对象调用基类版本同名成员函数 print() ;/派生类对象调用自身的成员函数 ; void main() B b ; b.A:print();b.printAB(); ,7.2.2 重名成员,2.重名成员函数,/例7-4 #include class A publi

14、c: int a1, a2 ; A( int i1=0, int i2=0 ) a1 = i1; a2 = i2; void print() cout a1= a1 t a2= a2 endl ; ; class B : public A public: int b1, b2 ; B( int j1=1, int j2=1 ) b1 = j1; b2 = j2; void print()/定义同名函数 cout b1= b1 t b2= b2 endl ; void printAB() A:print() ;/派生类对象调用基类版本同名成员函数 print() ;/派生类对象调用自身的成员函数 ; void main() B b ; b.A:print();b.printAB(); ,7.2.2 重名成员,2.重名成员函数,/例7-4 #include class A public: int a1, a2 ; A( int i1=0, int i2=0 ) a1 =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号