- 博客(4)
- 收藏
- 关注
原创 虚继承
直入主题:为什么虚继承能够解决“菱形继承”? (阅读下文之前可参考下我之前总结的“虚函数的本质”和“多重继承”。) 经过gdb调试,终于揭开了面纱。 下例类结构: Base / \ DerivedA DerivedB \ / Derived 在非虚继承时,DerivedA和
2016-04-28 12:25:29 568
原创 策略模式
初看策略模式,做了简单的调试,后续有时间再仔细思考一下,在这里做个笔记。 策略模式: 在Context对象中设置策略属性(构建策略);通过Context对象执行策略。 工厂模式: 在工厂中构造任务,赋值给接口指针;通过接口指针操作任务方法。 #include using namespace std; enum STRATEGY{S1, S2, S3}; class Stra
2016-04-26 16:46:15 433
原创 堆内存传递
下面一段关于GetMemory()的代码是面试时最容易出现的题目。 发现自己在解释原理的时候,还是有点“拗口”, 就来总结一下吧。 下例实际上涉及的就是传参的方式或堆内存的传递(堆内存靠指针来传递)。 传参的方式: 1.值 2.指针(如果变量本身就是一个指针,把此变量当作一个对象,就要传指针的指针?) 3.引用(实际就是传变量本身,不管变量是一个对象还是一个指针) 详见代码注
2016-04-22 09:27:08 668
原创 类初始化列表
以前在写代码时用初始化列表,因为前辈们说效率更高,也没有去想为什么。 最近看>Item4: 确保对象在使用前被初始化,恍然大悟。 如果使用赋值的方式在构造函数中初始化“类成员变量”,会先调用这个“类成员变量”类的默认构造函数,再调用赋值函数。 而使用初始化列表初始化“类成员变量”,只会调用这个“类成员变量”类的拷贝构造函数。 “赋值方式初始化”比“初始化列表”多调用一次默认构造函数,对于数
2016-04-05 13:22:33 800
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人