-
抽象类:包含纯虚函数的类,无法实例化对象。其子类也可是抽象类。在子类中将所有纯虚函数均实现后才能实例化对象。查看全部
-
纯虚函数:无函数体,定义时要=0查看全部
-
没有数据成员的类,实例化对象时,用一个内存单元标记它,表示其存在。查看全部
-
函数指针:存放函数的首地址。 虚函数表:实例化类对象时,对象中会有虚函数表指针,指向其虚函数表。类实例化出的所有对象,其虚函数表指针均指向相同的虚函数表。 若在子类中定义了与父类中同名的虚函数,子类的虚函数表中该虚函数对应的虚函数指针会覆盖父类对应的虚函数指针。查看全部
-
3.virtual不能修饰静态成员查看全部
-
2.virtual不能修饰普通函数查看全部
-
1.virtual不能修饰构造函数查看全部
-
使用类来抛出异常,类中可以有处理程序,这样更加清晰的指导异常和处理异常查看全部
-
一般抛出的都是错误编号,利用错误编号来处理异常查看全部
-
异常处理catch(int &e)//e为抛出的值。查看全部
-
内存不足,主要是内存别漏导致,内存没有回收。 try { fun()//在函数中执行到自己不想看到的分支时(还是需要自己判断异常),使用throw xxx;抛出异常,然后使用catch(xxx)来接受异常,这里可以使用到纯虚函数的继承方式来处理各种异常来增加程序的健壮性。 } catch { }查看全部
-
越界处理查看全部
-
Virtual不能修饰普通函数,virtual修饰的函数必须是某类的成员函数,若是全局函数,则会产生错误;不能修饰静态成员函数;不能是内联函数,若修饰了,系统会忽略inline关键字,而使其成为纯粹的虚函数;不能修饰构造函数。查看全部
-
虚析构函数能够解决在动态多态中存在的内存泄露问题。 由于是用子类实例化的父类对象,在销毁父类对象时,子类的析构函数不会被调用,从而导致了内存泄露问题。通过虚析构函数可以解决。查看全部
-
多态:指相同对象受到不同消息或不同对象收到相同消息时产生不同的动作。 静态多态(早绑定):在运行前,编译阶段就已确定要调用哪个函数,很早就把函数编译进去。 动态多态(晚绑定):不同对象,下达相同指令,产生不同动作。前提:以封装与继承为基础。至少要两个类,父类与子类,用三个类时,动态多态表现地会更明显。 实现多态的成员函数:用virtual修饰函数,使之成为虚函数。查看全部
举报
0/150
提交
取消