码迷,mamicode.com
首页 >  
搜索关键字:基类指针    ( 183个结果
派生类和基类的转换
指针引用分四种情况: 1.直接用基类指针引用基类对象 2.直接用派生指针引用派生对象 3.由基类指针引用派生类对象,由于派生类也是基类对象(包含关系),所以这种引用是安全的。但是只能引用基类成员,若试图通过基类指针引用那些只在派生类中才有的成员,编译器会报告语法错误。(解决该问题的答案是虚函数和多态 ...
分类:其他好文   时间:2017-03-09 23:06:04    阅读次数:224
为多态基类声明一个虚析构函数
使用一个基类指针删除派生类对象,同时基类的析构函数是非虚的,那么这个指针只会删除派生类对象中的基类的部分,其派生部分不会被删除。造成资源泄漏。而如果一个类并不用作基类,则没必要把析构函数声明为虚的,否则会浪费空间来存储虚函数指针和虚函数表。STL容器并不含虚析构函数,因此最好不要继承STL容器。只要... ...
分类:其他好文   时间:2016-11-19 15:41:35    阅读次数:178
虚函数的调用(1)
虚函数的定义: 在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。 考虑下面两个类: class Base {public: ...
分类:其他好文   时间:2016-10-30 16:47:39    阅读次数:142
C++中的类型识别
1、C++中类型识别(1)在面向对象中可能出现下面的情况 @1:基类指针指向子类对象 Base*p=newchild(); @2:基类引用成为子类对象的别名 Base&r=*p; --上面的base是基类,child是这个基类的子类,第一种情况,由于赋值兼容性的存在,父类指针是可以指向子类对象的,但是我们..
分类:编程语言   时间:2016-09-24 22:08:06    阅读次数:202
C++获取基类指针所指子类对象的类名
我们在程序中定义了一个基类,该基类有n个子类,为了方便,我们经常定义一个基类的指针数组,数组中的每一项指向都指向一个子类,那么在程序中我们如何判断这些基类指针是指向哪个子类呢? 关键字 typeid,有关此关键字的详细内容请自行百度。 代码: ...
分类:编程语言   时间:2016-08-31 21:54:44    阅读次数:135
C++对象模型:单继承,多继承,虚继承
C++对象模型 有两个概念可以解释C++对象模型: 语言中直接支持面向对象程序设计的部分。对于各种支持的底层实现机制。 单继承(父类含虚函数) 输出:基类指针p在运行时发生动态绑定,fun2调用子类方法,fun1由于没有virtual,仍然调用父类方法 内存模型: 指针的虚表指向子类方法地址 当一个 ...
分类:编程语言   时间:2016-08-06 17:26:02    阅读次数:189
effective c++学习笔记条款8-10
条款7:为多态基类声明虚析构函数 1、一个基类指针接受一个派生类对象的地址时,对该指针delete,仅仅释放基类部分 2、给所有类都带上虚析构函数是个馊主意,会带有vptr指向一个函数指针数组,扩大不必要的对象大小,除非补偿vptr,否则没有移植性。 3、string类和STL不含有虚析构函数,然而 ...
分类:编程语言   时间:2016-07-30 18:19:36    阅读次数:176
第66课 C++中的类型识别
1. 类型识别 (1)在面向对象中可能出现下面的情况 ①基类指针指向子类对象 ②基类引用成为子类对象的别名 ▲静态类型——变量(对象)自身的类型(定义变量类型时类型或参数类型) ▲动态类型——指针(引用)所指向的对象的实际类型 (2)基类指针转子类指针: ①示例:Derived* d = stati ...
分类:编程语言   时间:2016-07-12 23:18:29    阅读次数:227
-----------------------------------A Tour of C++-------------------------------------------
14.2.4类型转换 1、static_cast:对于合理的、行为良好的转换,例如将基类指针转换为派生类指针,使用此方式。 例如: Widget* pw = static_cast<Widget*>(pv); //pv是一个void*,应指向一个Widget 2、reinterptert_cast: ...
分类:编程语言   时间:2016-07-12 23:02:08    阅读次数:240
多态原理和多态实例
多态实现的关键 虚函数表 每一个有虚函数的类(或有虚函数的类的派生类)都有一个虚函数表,该类的任何对象中都放着虚函数表的指针。虚函数表中列出了该类的虚函数地址。多出来的4个字节就是用来存放虚函数表的地址的。 多态的函数调用语句被编译成一系列根据基类指针所指向的(或基类引用所引用的)对象中存放的虚函数 ...
分类:其他好文   时间:2016-07-09 10:37:46    阅读次数:131
183条   上一页 1 ... 7 8 9 10 11 ... 19 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!