现在的位置: 首页 > 综合 > 正文

其他C++

2013年08月27日 ⁄ 综合 ⁄ 共 717字 ⁄ 字号 评论关闭

1、指针和数组的区别
1.cpp:
char ia[] = 'Hello';
2.cpp:
extern char ia[];    //这里不能用extern char *ia;
print(ia);

2、构造函数,析构函数的异常处理
C++在执行构造函数过程中产生异常时,是不会调用对象的析构函数的,而仅仅清理和释放产生异常前的那些C++管理的变量空间等,之后就把异常抛

给程序员处理。所以,如果在C++的构造函数中发生异常时,已经创建的东西必须被释放掉,然后再重新抛出给上层调用代码处理,这才是C++构造函

数中正确的异常处理方法。(聪明程序员还可以找到另外一种不用try...catch来处理构造异常的方法,那就是C++标准类库的那个著名的auto_ptr,它

巧妙的利用C++推出作用域时会自动释放变量的机制,来清理其维护的对象)。
禁止异常信息传递到析构函数外:
有两种情况会条用析构函数,第一种是在正常情况下删除一个对象;第二种是异常传递的堆栈辗转开解过程中,由异常处理系统删除一个对象。注意

第二种情况,也就是如果在一个异常被激活的同时,析构函数也抛出异常,并导致程序控制权转移到析构函数外,C++将调用terminate函数。此外,

不允许异常传递到析构函数外面还有第二个原因:如果一个异常被析构函数抛出而没有在函数内部捕获住,那么析构函数就不会完全运行,无法完成

希望它做的所有事情。

3,右值引用(C++0x特征)

http://www.cnblogs.com/solo/archive/2010/04/19/1715607.html

http://www.cnblogs.com/oiramario/archive/2010/10/11/1847802.html

抱歉!评论已关闭.