理解C++
文章平均质量分 72
life_爱水的鱼
这个作者很懒,什么都没留下…
展开
-
理解C++存在继承和组合的对象构造函数调用顺序
前言: Hello,全世界早上好啊,哈哈,9月你好,2015年9月的第一天,也是自己本科生涯的最后一年了,接下来就是校招走上自己的职场,昨天是大四的第一节课,上的是软件工程,挺喜欢的一门课,要好好体会一下其中的思想,哈哈,扯远了,往下的日子里,更要好好努力,今天以一道面试题为说起,理解或者说感受类中关于构造函数的调用顺序问题: Let’s show the code原创 2015-09-01 08:52:59 · 6378 阅读 · 0 评论 -
C++ 虚函数表解析【转载】
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。转载 2015-10-12 22:29:27 · 390 阅读 · 0 评论 -
C++ 对象的内存布局【转载】
前言在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的问题,也是为了图一些表达上方便和简单。不想,这篇文章成为了打开C++对象模型内存布局的一个引子,引发了大家对C++对象的更深层次的讨论。当然,我之前的文章还有很多方面没有涉及,从我个人感觉下来,在谈论虚函数表里,至少有以下这些内容没有涉及:1)有成员变量的情况。2)有重复继承的情况。3)有虚拟继承的情况。4)有钻石型虚拟转载 2015-10-13 00:06:10 · 450 阅读 · 0 评论 -
如何限制对象只能建立在堆上或者栈上【转载】
如何限制对象只能建立在堆上或者栈上 在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。转载 2015-10-07 23:36:08 · 411 阅读 · 0 评论 -
C++细节问题
1:引用和指针有什么区别?参考答案 本质:引用是别名,指针是地址,具体的: • 指针可以在运行时改变其所指向的值,引用一旦和某个对象绑定就不再改变 • 从内存上看,指针会分配内存区域,而引用不会,它仅仅是一个别名 • 在参数传递时,引⽤用会做类型检查,而指针不会 • 引用不能为空,指针可以为空2:const和define有什么区别?参考答案转载 2015-10-07 23:59:44 · 466 阅读 · 0 评论 -
注意: new operator和operator new 以及placement new的差异【转载】
1:前言:本文是在参考了几个博客之后的个人总结,最后贴上自己在理解时使用的测试代码,以及自己对原博文的理解,原博文的地址请留意文章后面的参考资料。对于本文的总结理解有疑问或错误的地方,欢迎留言讨论或指正,大家一起进步,谢谢;转载 2015-09-07 21:23:33 · 919 阅读 · 0 评论 -
C++学习笔记【转载】
1.struct成员默认访问方式是public,而 class默认访问方式是private!2.exit函数终止程序执行会调用析构函数 ,abort函数终止程序不会调用析构函数!3.静态局部变量直到程序终止时才释放!4.通过public 函数返回 private成员的引用有可能会破坏类的封装 ,造成外部变量可以改变类私有成员值!5.常量对象只能调用常量成员函数,常量成员函数可以有非常量版本重载!6.转载 2015-09-06 23:32:59 · 343 阅读 · 0 评论 -
实现一个无法被继承的C++类
前言:C++11标准中新增了两个“准关键字”final, override, 其中,final: 用于标识类或成员函数,禁止子类继承或重载; oeveride: 用于标识虚函数,明确地表示成员函数重载了父类的同名函数,避免误覆盖重写overload// 注意分清楚重载(override)和重写(override)原创 2015-08-31 20:50:54 · 725 阅读 · 0 评论 -
【C++11】final, override,重载,重写覆盖,重写隐藏
1:final, override的作用1:final的作用:修饰类或成员函数修饰类时: 表示本类禁止被继承;修饰成员函数: virtual成员函数:表示不允许子类重写覆盖,但可以重写隐藏 非virtual成员函数:表示不允许子类重写隐藏;2:override:用于标示虚函数,明确说明这是重写覆盖父类的同名函数,避免造成重写隐藏的情况;原创 2015-09-09 14:53:19 · 3992 阅读 · 1 评论 -
string类的实现
前言: String类的实现是C++学习者很基本的能力考察,今天来自己也来尝试C++风格字符串操作String类的实现:/** to be improved by my own strcpy, strlen, strcmp * 实现说明: 实现说明:字符串类String的简单实现,内部采用字符数组实现原创 2015-09-02 23:13:52 · 450 阅读 · 0 评论 -
当无符号数与有符号数一起玩耍时
前言: 表达式中的数据如果遇到更高级别的数据,就会自动转换为高级别的数据类型。如果我们“定义”一个数据类型表示的范围越大,这个类型的级别越“高”;原创 2015-09-01 09:27:22 · 1505 阅读 · 1 评论 -
Win32消息循环机制等【转载】
Dos的过程驱动与Windows的事件驱动在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别:DOS程序主要使用顺序的,过程驱动的程序设计方法。顺序的,过程驱动的程序有一个明显的开始,明显的过程及一个明显的结束,因此程序能直接控制程序事件或过程的顺序。虽然在顺序的过程驱动的程序中也有很多处理异常的方法,但这样的异常处理也仍然是顺序的,过程驱动的结构。转载 2015-10-31 00:29:49 · 7916 阅读 · 0 评论