摘要:
百度:?=、[]、()、->以及所有的类型转换运算符只能作为成员函数重载。如果允许第一操作数不是同类对象,而是其他数据类型,则只能作为非成员函数重载(如输入输出流运算符>>和<<就是这样的情况)。重载双目运算符可以用友元或者成员函数,但是两者有区别例如用成员函数重载了 + 之后(假设赋值运算符 = 已经被重载)ob = ob + 100是被支持的,而ob = 100 + ob就是不被允许的这种情况下就要使用友元函数来对运算符重载以避免不必要的麻烦C++ 操作符重载 类成员 非类成员友元 左值 右值 阅读全文
随笔档案-2012年11月
[转]C++智能指针
2012-11-30 09:46 by Ball Cactus, 164 阅读, 收藏,
摘要:
摘自:http://www.cnblogs.com/HappyXie/archive/2011/01/17/1937130.htmlC++智能指针zero 坐在餐桌前,机械的重复“夹菜 -> 咀嚼 -> 吞咽”的动作序列,脸上用无形的大字写着:我心不在焉。在他的对面坐着 Solmyr ,慢条斯理的吃着他那份午餐,维持着他一贯很有修养的形象 ——— 或者按照 zero 这些熟悉他本质的人的说法:假象。“怎么了 zero ?胃口不好么?”,基本填饱肚子之后,Solmyr 觉得似乎应该关心一下他的学徒了。“呃,没什么,只是 …… Solmyr ,C++ 为什么不支持垃圾收集呢?(注:垃圾 阅读全文
C++小问题
2012-11-29 17:00 by Ball Cactus, 131 阅读, 收藏,
摘要:
sizeofchar c = 'a';int *p = &c;cout<<sizeof(c)<<' '<<sizeof(p)<<' '<<sizeof(*p)<<endl;//输出是1 4 1//sizeof(*p)求得p指向的数据区域的大小getchar(); 与getch(); 什么区别getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出 阅读全文
[转]任务管理器显示进程路径
2012-11-28 11:19 by Ball Cactus, 391 阅读, 收藏,
摘要:
大家都知道,在windows下按下Ctrl+Alt+Del会调出系统的任务管理器,在里面选择“进程”选项卡可以查看目前系统运行的进程状况,可是, 这个东西有一个不太方便的地方,就是你只能看到进程的名字,却不知道是什么东西在用这些进程,或者这个进程对应的应用程序的路径。 为了解决这个问题,我以前都是在网上下载一些进程管理器之类的软件,不过今天发现一个windows自带的,用起来还算方便。使用方法: 开始->运行,输入“wmic”(没有引号) ,这个时候会弹出一个dos式的窗口 (注意,如果你是第一次使用这个东西,会显示正在安装),之后就会出现界面:这个时候可以输入process,回车后会. 阅读全文
C运行时库
2012-11-28 11:05 by Ball Cactus, 272 阅读, 收藏,
摘要:
C运行时库函数和API函数有什么区别和联系呢? C运行时库函数是指 C语言本身支持的一些基本函数,通常是汇编直接实现的。。。。 API函数是操作系统提供给用户方便设计应用程序的函数,实现一些特定的功能,API函数也是C语言的函数实现的。 他们之间区别是:API函数是针对操作系统的,C语言运行时函数则是针对C语言本身的。 =========================================================== 1)运行时库就是 C run-time library,是C而非C++语言世界的概念:取这个名字就是因为你的C程序运行时需要这些库中的函数. 2)C语言是所谓 阅读全文
[转]C++命名空间
2012-11-28 09:16 by Ball Cactus, 216 阅读, 收藏,
摘要:
转自:http://hi.baidu.com/soulshape/item/c269eab131301874244b09e6* 掌握:命名空间的作用及定义;如何使用命名空间。* 了解:使用早期的函数库 重点、难点◆命名空间的作用及定义;如何使用命名空间。在学习本书前面各章时,读者已经多次看到在程序中用了以下语句:using namespace std;这就是使用了命名空间std。在本讲中将对它作较详细的介绍。一、 为什么需要命名空间(问题提出)命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。在C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句 阅读全文
error LNK2005 & error C2086
2012-11-27 16:37 by Ball Cactus, 552 阅读, 收藏,
摘要:
error C2086: 'id' : redefinition#ifndef是条件编译指令,属于预处理,在编译之前做的工作。若有,head1.h,head2.h,head3.h和src.cpp,在head2.h,head3.h中都包含head1.h,src.cpp包含head2.h,head3.h,则编译时出现redefinition错误。这时可以使用#ifndef...#define...#endif保证只编译一次。error LNK2005: "int id" (?id@@3HA) already defined in source.obj若有head 阅读全文
浙公网安备 33010602011771号