-
纯虚函数一定是某个类的成员函数,包含纯虚函数的类就叫抽象类。在C++中抽象类不允许实例化对象,如果非要实例化对象,计算机会报错。查看全部
-
仅含有纯虚函数的类叫接口类查看全部
-
抽象类不能实例化对象查看全部
-
对象的大小就是指在类的实例化出对象的过程当中,它的数据成员所占据的内存大小,只是数据成员,而不包括成员函数。对象的地址,就是指通过一个类实例化了一个对象,那么,这个对象在内存当中会占有一定的内存单元,内存单元的第一个内存单元的地址,就是对象的地址。对象成员的地址,是指某一个在实例化一个对象之后,这个对象当中存在一个或多个数据成员,每一个数据成员所占据的地址,就是这个对象成员的地址。虚函数表指针,指在具有虚函数的情况下,实例化一个对象时,这个对象的第一块内存当中所存储的是一个指针,这个指针就是虚函数表的指针。因为他也是一个指针,所以,它所占的内存大小就应该是4。查看全部
-
虚析构函数的特点是,当我们在父类当中,通过virtual修饰析构函数之后,通过父类的指针再 指向子类的对象,然后通过delete接父类指针就可以释放掉子类对象。这种情况也跟虚函数表有关。查看全部
-
如果定义了父类和子类,父类和子类出现了同名函数,这个时候就称之为隐藏;如果没有在子类中定义同名的虚函数,那么在子类虚函数表当中就会写上父类的相应的那个虚函数的函数入口地址,如果我们咋子类当中也定义了同名的虚函数,那么在子类的虚函数表当中,就把原来的父类的虚函数的函数入口地址覆盖成子类的虚函数的函数地址。这种情况就称之为函数的覆盖。查看全部
-
virtual 在函数中的使用限制 不能修饰普通的函数,这个函数必须得是某个类的成员函数;不能是 局函数; 不能修饰用关键字 static 修饰的静态成员函数; 不能修饰内联函数,如果修饰内联函数,计算机就会忽略掉inline关键字,而使变成纯 粹 的虚函数; 不能修饰构造函数。查看全部
-
如果delete后面跟的是一个父类的指针,只会执行父类的析构函数;如果delete后面跟一个子类的指针,既会执行父类的指针,也会执行子类的指针。查看全部
-
多态的语法核心时virtual关键字,必须使用virtual才能使多个类间建立多态关系。查看全部
-
使用父类的指针指向子类的对象,调用的函数是父类的成员函数,销毁时也只能销毁父类的对象不能销毁子类的对象。当给调用的成员函数加virtual关键字,使成为虚函数时,在使用指针调用时就会调用子类的成员函数。查看全部
-
多态分为静态多态和动态多态,静态多态指相同对象收到不同信息时产生的不同动作,例如之前学的重载函数;动态多态指不同对象收到形同信息时产生的不同动作,动态多态是在封装和继承基础之上实现的。动态多态至少得有两个类,一个父类一个子类,当有三个类时动态多态表现的更为明显。查看全部
-
什么是多态?指相同对象收到不同消息或不同对象收到相同消息时产生不同的动作。查看全部
-
比对类型 typeid(*obj) == typeid(Bird) 转换Bird * bird = dynamic_cast<Bird *>(obj);查看全部
-
dynamic_cast注意事项查看全部
-
typeid注意事项查看全部
举报
0/150
提交
取消