2009年5月8日

【转载】MFC的DEBUG_NEW与GDI+的冲突问题

摘要: 问题现象在我们使用GDI+的时候,如果程序是一个MFC程序,并且是在debug模式下,那我们可能会得到如下的错误信息:error C2660: ''Gdiplus::GdiplusBase::operator new'' : function does not take 3 parameters 原因在debug模式下,MFC程序要使用一个宏定义来扩展new操作符,使之需要接受两个附加的参数。这两... 阅读全文

posted @ 2009-05-08 23:54 TobyLin的学习之路 阅读(1095) 评论(0) 推荐(0) 编辑

【转载】利用CPU缓存的特性优化数据存储---数组vs链表

摘要: 一个常见的编程问题: 遍历同样大小的数组和链表, 哪个比较快? 如果按照大学教科书上的算法分析方法,你会得出结论,这2者一样快, 因为时间复杂度都是 O(n)。 但是在实践中, 这2者却有极大的差异。 通过下面的分析你会发现, 其实数组比链表要快很多。首先介绍一个概念:memory hierarchy (存储层次结构),电脑中存在多种不同的存储器,如下表 CPU寄存器 – immedi... 阅读全文

posted @ 2009-05-08 23:00 TobyLin的学习之路 阅读(461) 评论(0) 推荐(0) 编辑

虚析构函数的用处

摘要: 《EFFECTIVE C++》条款14:确定基类有虚析构函数“当通过基类的指针去删除派生类的对象,而积累又没有虚析构函数时,结果将是不可确定的”。通常发生的情况是:派生类的析构函数永远不会被调用。派生类的构造函数应在初始化表里调用基类的构造函数;派生类和基类的析构函数应加Virtual关键字。(以正确地根据多态性调用析构函数)不要小看构造函数和析构函数,其实编起来还是不容易... 阅读全文

posted @ 2009-05-08 07:10 TobyLin的学习之路 阅读(404) 评论(2) 推荐(0) 编辑

【转载】用const修饰函数 以及引起的附加限制:const函数不能调用非const的函数或引用非const参数

摘要: 问题来源:《Microsoft Visual C++ windows applications by example 》pdf第74页(书面57页)问题描述:BankAccount类的const实例(const BankAccount account2)对其非const方法account2.withdraw(int)的调用属于非法。原因:withdraw的//*******************... 阅读全文

posted @ 2009-05-08 06:54 TobyLin的学习之路 阅读(2421) 评论(0) 推荐(0) 编辑

【转载】override overload hide辨析

摘要: C++中的函数overloading是“context-free overloading”,必须参数列表不同。Ada和Lisp支持”context-dependent overloading”只要求返回值不同即可算是重载。 这三个概念都是与OO中的多态有关系的。如果单是区别重载与覆盖这两个概念是比较容易的,但是隐藏这一概念却使问题变得有点复杂了,下面说说它们的区别吧。 重载oveload是指不... 阅读全文

posted @ 2009-05-08 06:15 TobyLin的学习之路 阅读(229) 评论(0) 推荐(0) 编辑

【转载】关于“静态方法不能调用非静态方法”的补充解释

摘要: 找到一篇文章验证了我之前的想法(static方法调用non-static方法必须通过传对象参数的方式,因为non-static方法是与对象实例对应的) http://hi.baidu.com/danghj/blog/item/1f96d1eac9771cd6d539c986.html ... 阅读全文

posted @ 2009-05-08 05:27 TobyLin的学习之路 阅读(1562) 评论(0) 推荐(0) 编辑

【转载】class和struct的区别 类的内存结构

摘要: 转载一篇文章 写的不错 http://blog.sina.com.cn/s/blog_54ce5b83010002vt.html 有很多人在学习C++的时候只是了解了C++的语法,或者更高层次的人是理解了oo,但在这样的学习过程中,往往一些最基本的问题反而被忽略了。当然,这些问题或许在你做工程中,不会有太大的影响,只要按照平时一贯的良好编码习惯,依旧可以写出好的代码;但某些时候,或许就是这些最... 阅读全文

posted @ 2009-05-08 04:47 TobyLin的学习之路 阅读(862) 评论(0) 推荐(0) 编辑

【转载】程序的终止 exit函数 abort函数

摘要: exit和_exit函数用于正常终止一个程序: _exit立即进入内核,exit则先执行一些清除处理(包括调用执行各终止处理程序,关闭所有标准I / O流等),然后进入内核。使用不同头文件的原因是:exit是由ANSI C说明的,而_exit则是由POSIX.1说明的。 由于历史原因,exit函数总是执行一个标准I/O库的清除关闭操作:对于所有打开流调用 fclose 函数。exi... 阅读全文

posted @ 2009-05-08 04:22 TobyLin的学习之路 阅读(2523) 评论(0) 推荐(0) 编辑

导航