
C/C++
ozdazm
这个作者很懒,什么都没留下…
展开
-
运算符重载
原文地址:http://www.cnblogs.com/wzh206/archive/2010/03/25/1696162.html定义格式返回类型 operator运算符(形式参数表) { 函数体 }参数个数的限定 非成员函数: 单目运算符:参数表中只有一个参数; 双目运算符:参数表中只有两个参数转载 2011-11-02 11:36:47 · 407 阅读 · 0 评论 -
C++的临时变量
它们是被神所遗弃的孩子,没有人见过它们,更没有人知道它们的名字.它们命中注定徘徊于命运边缘高耸的悬崖和幽深的深渊之间,用自己短暂的生命抚平了生与死之间的缝隙.譬如朝露,却与阳光无缘.是该为它们立一座丰碑的时候了,墓铭志上写着:我来了,我走了,我快乐过. 许多人对临时变量的理解仅仅限于: string temp; 其实,从C++的观点来看,这根本就不是临时变量,而是局部变量.转载 2011-11-07 10:38:49 · 462 阅读 · 0 评论 -
单例模式的实现,及线程安全问题
1. 单例模式的实现class CSingleton{//其他成员public:static CSingleton* GetInstance(){ if (m_pInstance == NULL ) //判断是否第一次调用 m_pInstance = new CSingleton(); return m_pInst转载 2013-01-24 14:28:18 · 810 阅读 · 0 评论 -
单例模式跟全局变量相比的好处
全局变量是最容易引起初学者兴趣的了,在整个项目中,任何一个函数,每一行代码都可以轻易访问所有的全局变量,并且可以不用付出额外的代价,全局变量看起来就像是为懒惰的程序员设计的一条绿色通道,如果不想看到函数因为要与其他模块通信而动辄很多参数,或者像给程序始末的关键信息寻找一个最合适的存储位置,那么全局变量就是很好的解决方案但是在项目中,全局变量肯定不少,这个时候,使用起来就会比较混乱,这个时候有一转载 2013-01-24 14:26:00 · 8324 阅读 · 0 评论 -
Static,Const的作用
PS:静态存储区的数据会被初始化为零。其中包括全局变量和静态变量(静态全局和静态局部)。一、 Static的作用?static 的两大作用: 1. 控制存储方式:static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会原创 2013-01-24 14:22:43 · 627 阅读 · 0 评论 -
与临时对象的斗争(下)
作者:唐风出处:http://www.cnblogs.com/liyiwen本文版权归作者和博客园共有,欢迎转载,但请保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。在上篇里,我们看到了 (N)RVO 和右值引用,下面我们来看看表达式模板。Expression Template(表达式模板,ET)如果有“系统地”学习过转载 2011-11-07 12:42:12 · 1235 阅读 · 0 评论 -
与临时对象的斗争(上)
作者:唐风出处:http://www.cnblogs.com/liyiwen本文版权归作者和博客园共有,欢迎转载,但请保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。C++ 是一门以效率见长的语言(虽然近来越来越多的人“不齿”谈及效率,我深以为不然,在某一次的程序编写中不对效率锱铢必较并不意味意味着我们就不应该追求更多的更好的做法)。总之吧,转载 2011-11-07 12:43:00 · 1308 阅读 · 0 评论 -
静态成员函数与普通成员函数的区别
区别1: 静态成员函数实际上是一个全局函数,不依赖一个类的对象. 而属于类,不创建对象也可调用。 普通成员函数依赖一个类的对象,也就是它有一个隐藏的调用参数(this)指针,必须指向一个类的对象。区别2: 静态函数只能访问类中的静态成员变量;区别3:: 如果类的成员函数想作为回调函数来使用,如创建线程等,一般只能将它定义为原创 2013-01-24 13:51:41 · 8388 阅读 · 1 评论 -
C++的类中,那些函数不能用virtual修饰?
1. C++的类中,那些函数不能用virtual修饰?不能是虚函数的成员函数有:静态成员函数,内联成员函数,构造函数。PS:一般情况下,父类的析构函数需要定义为虚函数。 2. 为什么构造函数不能为虚函数?构造函数调用时,Vtable没有建立,当然不能使用虚函数。构造函数不需要是虚函数,也不允许是虚函数,因为创建一个对象时我们总是要明确指定对象的类。原创 2013-01-24 14:18:41 · 6279 阅读 · 0 评论 -
指针和引用的区别
指针和引用都是直接作用于地址的类型,区别主要是指针更加灵活,很多时候引用是做不到的。 A、强制类型转换。 比如老式风格的程序传递全局临时变量常常使用void *承载一切类型。 B、允许有“空”状态。指针作为可以有空状态,而引用必须在定义时就初始化。指针可以被赋值,引用不可以。 C、常量引用用于传递不能被修改的大对象,防止参数传递时的拷贝开销,写程序时比常量指针直观。例如vo转载 2013-01-24 14:17:23 · 475 阅读 · 0 评论 -
引用作为返回值
引用作为返回值的时候,有一些规则必须遵守。这些规则包括: 不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了“无所指”的引用,程序会进入未知状态。 不能返回函数内部new分配的内存的引用。这条可以参照Effective C++[1]的Item 31。虽然不存在局部变量转载 2011-11-02 16:23:57 · 419 阅读 · 0 评论 -
iostream.h与iostream是不同的
#include是在旧的标准C++中使用。在新标准中,用#include。 #include是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。说明:后缀为.h的头文件C++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,C++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当原创 2011-05-04 16:58:00 · 482 阅读 · 0 评论