- 博客(5)
- 资源 (9)
- 收藏
- 关注
原创 c++类内存机制探寻
class的成员变量分为static 和nonstatic两类class的成员方法分为static nonstatic 和virtual三类。class实例化的过程中,实际上实例化的是类的nonstatic成员变量,这也决定了类的内存消耗。继承分为单继承 多继承和虚拟继承。对子类的实例化,会先对父类进行实例化,子类是如何引用父类的,是用指针还是直接包含类的实现,因为每一个子类的父类
2015-06-28 12:52:08 636
原创 构架设计原则之一 排除人为控制
构架设计原则之一就是要将人控的因素的因素尽量排除。c++中为什么设计智能指针,因为释放内存这样一个操作对人相比于机器来说,更容易出错,所以需要智能指针尽量消除人手动释放内存的操作。在我们的库设计中,我们要尽量避免用户因为“打开方式”不对,导致错误。因为库的原则是,黑盒原则,用户在不了解库内部实现的情况下也能够实现自己的功能。如果因为”打开方式“导致用户得不到预想的结果,我们就应该考虑为用户
2015-06-18 16:27:44 467
原创 GPL许可证 开源精神
一个软件拥有GPL许可证,则说明,作为软件的使用者,你可以:1 看到源码。商业软件看不到源码。2 copy软件及源码给其他人。商业软件不予许软件使用者传播。3 对源码进行修改,产生新的软件。商业软件不予许你在它头上乱搞。就像深度系统是xp的盗版一样但是相应的义务:你的软件依赖了GPL许可证,你应该变成GPL的,要不然就不要依赖。
2015-06-11 16:19:41 1279
原创 gdb的使用技巧
watch能够检测具体的变量如何变化,但是如果变量所在的block切换之后,watch的对象就会消失,因此检测“绝对地址”上的值p &loop->anfdmax$1 = (int *) 0x2aaaabf280e8watch *(int *) 0x2aaaabf280e8这样就能检测loop->anfdmax的变化
2015-06-04 20:20:29 420
原创 软件设计之自顶向下
软件设计中,首先要避免的是逻辑依赖循环。在软件逻辑设计中,一般希望设计的软件是金字塔形状的,底层的类是不会依赖上层类的,或者说底层类看不到上层类的存在。就像通讯协议中的分层结构一样,每一层级,对应一个类,则下面的类收到上层类的支配和管理。这样的逻辑依赖就是明确和清晰的,并且在必要的时候,可以对一个层次上的类实现进行修改,在不改变接口的情况下。
2015-06-03 15:19:56 1159
the nature of statistical learning theory.pdf.zip
2018-10-25
Linux内核源代码情景分析.pdf
2013-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人