摘要:
很多人对Volatile都不太了解,其实Volatile是由于编译器优化所造成的一个Bug而引入的关键字。 int a = 10; int b = a; int c = a; 理论上来讲每次使用a的时候都应该从a的地址来读取变量值,但是这存在一个效率问题,就是每次使用a都要去内存中取变量值,然后再通过系统总线传到CPU处理,这样开销... 阅读全文
摘要:
(一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TC... 阅读全文
摘要:
伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式... 阅读全文
摘要:
如果一个类不会用作基类,就不需要使用任何虚函数,因为使用虚函数会增加程序的开销。但是,如果要作为基类,为维护完整性,就需要使用虚函数,让子类定义自己的具体行为。 所以基本的一条是,无故的声明虚析构函数和永远不去声明一样是错误的。 实际上,很多人这样总结:当且仅当类里包含至少一个虚函数的时候才去声明虚析构函数。 至于虚析构函数,C++语言标准关于这个... 阅读全文