摘要: from:http://www.cnblogs.com/zhangpengshou/archive/2008/08/24/1275187.html关键字是预先保留的标识符,每个关键字都有特殊的含义。我们不能在程序中使用与关键字同名的标识符。以下是C++所保留的关键字asmautobad_castbad_typeidboolbreakcasecatchcharclassconstconst_castcontinuedefaultdeletedodoubledynamic_castelseenumexceptexplicitexternfalsefinallyfloatforfriendgotoi 阅读全文
posted @ 2013-10-09 16:57 wanqi 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 在C++中,调用拷贝构造函数有三种情况:1.一个对象作为函数参数,以值传递的方式传入函数体.2.一个对象作为函数返回值,以值传递的方式从函数返回.3.一个对象用于给另外一个对象进行初始化(复制初始化).拷贝构造函数必须以引用的形式传递(参数为引用值).其原因如下:当一个对象以传递值的方式传一个函数的时候,拷贝构造函数自动的调用来生成函数中的对象.这样会导致无限循环地调用拷贝构造函数,直至栈溢出.以前,一直有个误解,以为以同类型的对象调用"="时,就会调用赋值符.参看以下的例子: 1 class CTest { 2 public: 3 CTest(); 4 CTest(con 阅读全文
posted @ 2013-10-09 16:47 wanqi 阅读(742) 评论(0) 推荐(0) 编辑
摘要: inline函数避免函数调用的开销// find longer of two strings const string &shorterString(const string &s1, const string &s2) { return s1.size() < s2.size() ? s1 : s2; }将 shorterString 写成函数有一个潜在的缺点:调用函数比求解等价 表达式要慢得多。在大多数的机器上,调用函数都要做很多工作;调用前要先保 存寄存器,并在返回时恢复;复制实参;程序还必须转向一个新位置执行。将函数指定为 inline 函数,(... 阅读全文
posted @ 2013-10-09 15:00 wanqi 阅读(299) 评论(0) 推荐(0) 编辑