c++ 编程调试秘笈

美.Vladimir Kushnir . O’REILLY. 人邮 .2013.1


c++大部分缺陷来源于c

MyClass* object = new MyClass();

delete object;

 

MyClass* array = new MyClass[numbers];

delete []array;

可以从std::vector 派生新类吗?

继承一个没有虚析构函数的类是危险的[整理]

一个没有虚析构函数的类意味着不能做为一个基类。如std::string, std::complex, 和 std::vector 都是这样的。当你公有继承创建一个从基类继承的派生类时,指向新类对象中的指针和引用实际上都指向了起源的对象。因为析构函数不是虚函数,所以当你delete 一个这样的类时,C++就不会调用析构函数链。

 

vector 的灾难 , 如果将更大的数放进vector 它会重新分配一个更大的空间,而地址完全乱了. 指针 引用 都是一样. 迭代器的情况 相同 .所以,在修改了容器之后, 不要再保存指向容器内元素的指针,引用 或迭代器  

        

 

不要使用int  改用Int .

不要使用 unsigned  改用 Unsigned

不要使用 double 改用 Double

 

 


内存泄漏

引用计数指针

作用域指针

用智能指针

 


解引用 NULL指针

 

 

 


拷贝构造函数和赋值操作符

 


避免在析构函数中写代码

 

 


怎样编写一致的比较操作符

 

 


标准c函数库的错误

 

 

 


posted @ 2013-07-25 15:53  好哥TOP  阅读(291)  评论(0编辑  收藏  举报