美.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函数库的错误