继承与多态;
继承的作用;1是为啦代码重用;
2是为啦扩展;
3是为了实现多态;
派生类的类型也可以是基类的类型;
派生类的类型可以指向一个基类的对象;
Apple ap;
Fruit fr=ap; 调用fr的拷贝构造函数 Fruit fr(sp)
Fruit* frp=≈
Fruit& fr=ap;
引用不接受右值;
char c;
int& ir=C;
一个派生类对象从类型上讲也是基类类型的;
Fruit(const Fruit& rhs);
主要发生类型转换就一定回产生临时对象;
函数调用,同作用域优先
派生类中调用基类函数
void Employee::print();
Manager m1;
m1.print();
m1.Employee::print();
const 引用, 对象的数据成员,不能调用系统默认的构造函数
构造的过程的先基类,然后是数据成员,
一定记得放在初始化列表中;
类对象的构造是自上而下的;
对象的创建和对象的销毁是相反的过程
派生类以什么样的方式来访问基类;
初始化列表是
level
调用构造函数, 来初始化基类;
派生类是通过初始化列表来初始化基类;
基类是派生类的东西,不需要通过别的对象来调用;
可以直接调用,
基类没友默认构造函数;
派生类的构造函数可以调用其基类的构造函数;
多态: 相同的接口体现不同的行为;//
多态类型 一个带有虚函数的类表示一个多态类;
继承的作用;1是为啦代码重用;
2是为啦扩展;
3是为了实现多态;
派生类的类型也可以是基类的类型;
派生类的类型可以指向一个基类的对象;
Apple ap;
Fruit fr=ap; 调用fr的拷贝构造函数 Fruit fr(sp)
Fruit* frp=≈
Fruit& fr=ap;
引用不接受右值;
char c;
int& ir=C;
一个派生类对象从类型上讲也是基类类型的;
Fruit(const Fruit& rhs);
主要发生类型转换就一定回产生临时对象;
函数调用,同作用域优先
派生类中调用基类函数
void Employee::print();
Manager m1;
m1.print();
m1.Employee::print();
const 引用, 对象的数据成员,不能调用系统默认的构造函数
构造的过程的先基类,然后是数据成员,
一定记得放在初始化列表中;
类对象的构造是自上而下的;
对象的创建和对象的销毁是相反的过程
派生类以什么样的方式来访问基类;
初始化列表是
level
调用构造函数, 来初始化基类;
派生类是通过初始化列表来初始化基类;
基类是派生类的东西,不需要通过别的对象来调用;
可以直接调用,
基类没友默认构造函数;
派生类的构造函数可以调用其基类的构造函数;
多态: 相同的接口体现不同的行为;//
多态类型 一个带有虚函数的类表示一个多态类;