引用的危险性

C指针不慎操作具很强的危险性,使用C++之后,习惯将指针改为使用引用,曾经一度以为引用可以避开C指针的危险性。结果,今天调试程序时,意外发现,指针和引用只是在代码文本中的表示形式不同而已,实际的使用几乎完全一样。虽然无法查看到内存中引用值的具体情况,但是在引用所代表的那个对象被释放之后,引用依然可以访问其成员或者是内存中的地址。

1 int* iPtr = new(10);
2 int& ref = *iPtr;
3 delete iPtr;
4 
5 // debug下程序依然可以运行
6 ref = 5;

这小段代码,虽然不起眼,但是对于程序来说,是很大的隐患。

 

posted @ 2014-03-08 13:38  萧叶  阅读(166)  评论(0编辑  收藏  举报