首先,给出基类animal和子类fish [cpp] view plain copy ...
基类指针和子类指针之间相互赋值 将子类指针赋值给基类指针时,不需要进行强制类型转换,C 编译器将自动进行类型转换。因为子类对象也是一个基类对象。 将基类指针赋值给子类指针时,需要进行强制类型转换,C 编译器将不自动进行类型转换。因为基类对象不是一个子类对象。子类对象的自增部分是基类不具有的。 强制转换告诉编译器为对象增加子类所特有的部分 fish fh animal an newanimal fh ...
2015-09-22 06:24 0 3165 推荐指数:
首先,给出基类animal和子类fish [cpp] view plain copy ...
我们在程序中定义了一个基类,该基类有n个子类,为了方便,我们经常定义一个基类的指针数组,数组中的每一项指向都指向一个子类,那么在程序中我们如何判断这些基类指针是指向哪个子类呢? 本文提供了两种方法 (1) 自定义类id, (2)typeid 一、自定义id 如下所示基类father有两个子类 ...
我们在程序中定义了一个基类,该基类有n个子类,为了方便,我们经常定义一个基类的指针数组,数组中的每一项指向都指向一个子类,那么在程序中我们如何判断这些基类指针是指向哪个子类呢? 关键字 typeid,有关此关键字的详细内容请自行百度。 代码: ...
笔记: 子类和基类 构造函数不显式时,的this指针相同..在QT中,如果父类基于QObject,那么构造子类时传入this指针,这样所有子类,父类,基类都是同一地址.delelater(),会delete掉所有类的new对象 CDataProcessThread ...
我们在程序中定义了一个基类,该基类有n个子类,为了方便,我们经常定义一个基类的指针数组,数组中的每一项指向都指向一个子类,那么在程序中我们如何判断这些基类指针是指向哪个子类呢? 本文提供了两种方法 (1) 自定义类id, (2)typeid 一、自定义id 如下所示基类father有两个子类 ...
c++多态性是依靠虚函数和父类指针指向子类对象来实现的。简单来说,父类中定义虚函数,父类指针指向子类对象,父类指针调用函数时调用的就是子类的函数。 父类没有定义虚函数,父类指针指向子类对象时,父类指针调用的函数还是父类的函数。 dynamic_cast可以实现将子类指针 ...
之前做过一个测试,在一个类中定义一个virtual修饰的函数时,sizeof这个类,发现类的大小多了恰好一个指针的字节大小,当初不明白,只是记住有这么一个特性。后来,发现它就是c++编译器给我们添加的vptr指针。 当类中声明虚函数时,编译器会在类中生成一个虚函数表; 虚函数表是一个存储 ...
一、基类指针、派生类指针 父类指针可以new一个子类对象 二、虚函数 有没有一个解决方法,使我们只定义一个对象指针,就可以调用父类,以及各个子类的同名函数? 有解决方案,这个对象指针必须是一个父类类型,我们如果想通过一个父类指针调用父类、子类中的同名函数的话,这个函数是有要求的; 在父类 ...