码迷,mamicode.com
首页 >  
搜索关键字:基类指针    ( 183个结果
派生类地址比基类地址少4(子类与基类指针强行转换的时候,值居然会发生变化,不知道Delphi BCB是不是也这样) good
大家对虚表并不陌生,都知道每个含有虚函数的类对象都有1个虚指针,但是在现实使用中,却总是因为这而调试半天,才发现原来是虚指针惹的祸。我这几天在调试代码时候也中招了,我的问题是这样的,如下图,CTree是最底层基类(非虚类), CSamplerTree(虚类)派生自CTree,CMSamplerTre ...
分类:Windows程序   时间:2016-06-25 06:12:55    阅读次数:215
纯虚函数的学习和使用
老师的要求是给出shape类,派生出梯形,圆形,正方形和矩形4个类,然后根据他们的面积进行排序并且输出相应的信息。 一开始我遇到了一个问题,我没有将4个派生类定义成数组,导致定义出来的某个类对象使用完之后就被抹除了,从而导致原先的基类指针数组的指向丢失。纯虚函数的工作原理就是指针指向这个类,所以这个 ...
分类:其他好文   时间:2016-05-30 20:03:02    阅读次数:142
C++ 继承
1.继承使用的场合:写一个class,这个class和以前写过的class相比,只是增加一些成员或者对原来的成员的行为有修改,则可以继承原来的class,语法不展开说,通过代码写写几句总结。 基类指针创建子类对象,同名同参函数,优先调用子类函数。 2.句柄类 以前的博文写得过于繁琐,几天前重新梳理了 ...
分类:编程语言   时间:2016-05-25 22:01:45    阅读次数:216
【转载】图说C++对象模型:对象内存布局详解
原文:图说C++对象模型:对象内存布局详解 正文 回到顶部 0.前言 文章较长,而且内容相对来说比较枯燥,希望对C++对象的内存布局、虚表指针、虚基类指针等有深入了解的朋友可以慢慢看。本文的结论都在VS2013上得到验证。不同的编译器在内存布局的细节上可能有所不同。文章如果有解释不清、解释不通或疏漏 ...
分类:编程语言   时间:2016-05-23 22:34:15    阅读次数:292
C++虚函数
http://blog.sina.com.cn/s/blog_625ef6610101g9f2.html 定义:在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数 语法:virtual 函数返回类型 函数名(参数表) {函数体;} 用途:实现多态性,通过指向派生类的基类指针,访问派生类中同名覆盖成员函数 虚函数必须是基类的非静态成员函...
分类:编程语言   时间:2016-05-22 12:37:47    阅读次数:254
再谈C++继承
一、三种继承方式 private 基类的公有成员与保护成员成为派生类的私有成员 public 基类的成员访问权限不变 protected 基类的公有成员与保护成员将成为派生类的保护成员 二、三种继承方式的对比: 三、在没有虚函数的情况下,类指针调用函数是注意: 如果以一个基类指针指向派生类对象,那么 ...
分类:编程语言   时间:2016-05-16 17:26:22    阅读次数:178
c++ 析构函数之虚函数
之前面试的时候经常会问到关于C++中析构函数为什么会是虚函数的问题,虽然这个问题在面试中已经问烂了,但是这个问题在网上也并没有一个特别好的全面的解答,最近翻看effective c++,条款07解释的非常好,筛选出一部分分享给大家。 当派生类对象经由一个基类指针被删除,而该基类的析构函数非虚,其结果 ...
分类:编程语言   时间:2016-05-13 08:12:14    阅读次数:126
私有继承:派生类指针不能隐示的转换为基类指针
class base{public: virtual void display(){ cout << "base" << endl; } };class drive : private base{public: virtual void display(){ cout << "drive" << e ...
分类:其他好文   时间:2016-05-07 13:01:11    阅读次数:119
[原创]C++中一些重要概念
1、虚函数 虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。当把基类的某个成员函数声明为虚函数后,允许在其派生类中对该函数重新定义,赋予它新的功能,并且可以通过指向基类的指针指向同一类族中不同类的对象,从而调用其中的同名函数。 2、纯虚 ...
分类:编程语言   时间:2016-04-16 21:30:44    阅读次数:186
c++ delete时析构函数没有执行的可能原因
在delete的那个地方,没有#include相应的头文件,而只是用了class的前置声明; 或许delete的是基类指针,而编译器认识基类,所以没有加入子类的#include; 如果在delete子类对象时,要释放基类的内存,一定要记得将基类析构函数写为virtual ; 如果某个类不包含虚函数, ...
分类:编程语言   时间:2016-04-09 18:42:31    阅读次数:574
183条   上一页 1 ... 8 9 10 11 12 ... 19 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!