派生类
调用基类上已被其他方法重写的方法。 指定创建派生类实例时应调用的基类构造函数。 基类访问只能在构造函数、实例方法或实例属性访问器中进行
为什么基类中的析构函数要声明为虚析构函数? 用对象指针来调用一个函数,有以下两种情况: 如果是虚函数,会调用派生类中的版本。 如果是非虚函数,会调用指针所指类型的实现版本。 析构函数也会遵循以上两种情况,因为析构函数也是函数嘛,不要把它看得太特殊
简单来说,类是一种高级抽象,就是一种高级的数据类型,是对象的蓝图,就是用来定义你要用的对象的属性和行为的。 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法
在 C++ 中,面向对象的三大特征之一多态就是通过虚函数实现,虚函数使用关键字 virtual 声明。意思是,当派生类中重新定义基类中定义的虚函数时,告诉编译器不要静态链接到该函数。而是根据所调用的对象类型来选择调用的函数,这种操作也称为动态链接(或后期绑定)
C++内所说的异常是指:可以预见的非正常状况例如输入的指针为空;而非不可预见的问题例如突然停电或者突然被用户把进程kill掉并不是C++需要处理的"异常" 异常特性会导致程序的执行流程不可控且往往对OS及runtime有一定的要求(可移植性差)所以没有特殊需求时不应当使用这个特性. throw-try-catch是异常系统的典型三个环节. 异常抛出后寻找catch的过程称为栈展开被展开的函数栈内所有局部对象都将被销毁因此抛出的异常对象必须不依赖局部对象. 标准库内提供了以exception为基类的若干异常我们可以使用这个类也可以自定义类该类的const char * what()成员用于给用户提供信息. catch时优先使用引用 从而保证能派生类实例能绑定到基类参数上. 属于C++系列分类,被贴了 c++、excpetion 标签。作者是edimetia3d。
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例
将小范围的类型转换为大范围的类型,如将int类型转换为float类型,派生类转换为基类。 即强制类型转换,这种转换需要强制转换运算符,并且转换可能会造成数据丢失。如大范围类型转换为小范围类型,基类转换为派生类