码迷,mamicode.com
首页 >  
搜索关键字:基类指针    ( 183个结果
c++ 动态判断基类指针指向的子类类型(typeid)
我们在程序中定义了一个基类,该基类有n个子类,为了方便,我们经常定义一个基类的指针数组,数组中的每一项指向都指向一个子类,那么在程序中我们如何判断这些基类指针是指向哪个子类呢? 本文提供了两种方法 (1) 自定义类id, (2)typeid 一、自定义id 如下所示基类father有两个子类son1 ...
分类:编程语言   时间:2018-09-13 10:23:00    阅读次数:319
C++ 虚析构函数
Virtual 关键字起到什么作用 借鉴网友blog, 了解了虚析构函数的作用: 虚析构函数是为了避免内存泄露,而且是当子类中会有指针成员变量时才会使用得到的。 也就说虚析构函数使得在删除指向子类对象的基类指针时可以调用子类的析构函数达到释放子类中堆内存的目的,而防止内存泄露的。 c++中的函数调用 ...
分类:编程语言   时间:2018-07-19 13:42:28    阅读次数:198
c++ 虚函数
虚函数的默认参数值 如果虚函数在基类中的声明带有默认变元值,则通过基类指针调用该函数时,就总是从函数的基类模板中接受默认的变元值。 函数派生类版本中的默认值不起作用。 $ ./virtual 50carton volume is 20400 有虚函数的对象占用的字节数要比没有虚函数的对象多。 纯虚函 ...
分类:编程语言   时间:2018-07-17 16:45:21    阅读次数:172
向上强制转换和向下强制转换
在C++的继承中,基类和派生类的指针,引用的题目我们都见的很多。前面我也总结过基类指针和派生类指针调用函数的机制。 将派生类引用或指针转换为基类引用或指针被称为向上强制转换(upcasting)即基类指针指向了派生类对象,或者将派生类对象强制转换成了基类指针指向了 与向上强制转换相反,将基类指针或引 ...
分类:其他好文   时间:2018-07-07 20:36:30    阅读次数:167
C++设计模式之-工厂模式的总结
工厂模式分为3种,即简单工厂模式、工厂方法模式、抽象工厂模式,其实大同小异,总结下来就是: 简单工厂模式:一个工厂,多个产品。产品需要有一个虚基类。通过传入参数,生成具体产品对象,并利用基类指针指向此对象。通过工厂获取此虚基类指针,通过运行时多态 1 // Factory.cpp : 定义控制台应用 ...
分类:编程语言   时间:2018-07-06 14:20:26    阅读次数:199
c++中的类型识别
基类指针指向子类对象 基类引用成为子类对象的别名 静态类型-变量(对象)自身的类型 动态类型-指针(引用)所指向对象的实际类型 基类指针是否可以强制类型转换为子类指针取决于动态类型! c++中如何得到动态类型? 解决方案-利用多态 1.在基类中定义虚函数返回具体的类型信息 2.所有的派生类都必须实现 ...
分类:编程语言   时间:2018-06-26 10:52:46    阅读次数:221
继承的一点认识
在类的继承当中,如果派生类继承自父类。 派生类想要调用父类的函数只需要 1 class A{ 2 public: 3 computePay(); 4 } 5 6 class B:public A 7 { 8 public: 9 computePay(); 10 } 11 B b1; 12 A a1; ...
分类:其他好文   时间:2018-06-24 20:51:30    阅读次数:127
【【C++ Primer 第15章】 虚析构函数
学习资料 ? C++中基类的析构函数为什么要用virtual虚析构函数 虚析构函数 1. 正文 直接的讲,C++中基类采用virtual虚析构函数是为了防止内存泄漏。具体地说,如果派生类中申请了内存空间,并在其析构函数中对这些内存空间进行释放。假设基类中采用的是非虚析构函数,当删除基类指针指向的派生 ...
分类:编程语言   时间:2018-06-22 20:35:35    阅读次数:178
警告: deleting object of polymorphic class type which has non_virtual destructor
如果基类里有虚函数,定义了基类指针指向派生类,就会需要定义基类虚析构,这样,基类指针析构的时候,就会先析构派生类,再析构基类。 在用基类指针指向派生类时, 在基类析构函数声明为virtual的时候,delete基类指针,会先调用派生类的析构函数,再调用基类的析构函数。 在基类析构函数没有声明为vir ...
分类:其他好文   时间:2018-06-07 13:55:29    阅读次数:269
类型识别(五十四)
我们在面向对象中可能会出现这样的情况:基类指针指向子类对象、基类引用成为子类对象的别名。静态类型便指的是变量(对象)自身的类型,动态类型是指指针(引用)所指向对象的实际类型。基类指针是否可以强制类型转换为子类指针取决于动态类型! ?那么我们在 C++ 中如何得到动态类型呢?解决方案便是利用多态:1、在基类中定义虚函数返回具体的类型信息;2、所有的派生类都必须实现类型相关的虚函数;3、每个类中的类型虚函数都需要不同的实现。
分类:其他好文   时间:2018-06-05 10:18:38    阅读次数:159
183条   上一页 1 ... 3 4 5 6 7 ... 19 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!