如果函数返回指针,则要小心了,最好要将其变为智能指针比如 int* ->shared_ptr<int>,并且在函数内部还可以改智能指针的删除器。即当引用计数为0时的举动,能够为函数或函数对象 。比如shared_ptr<int> ptr(int* a,f) //f 为删除器。
返回值谨慎用by-reference 参数传递尽量用by reference
能够用non-member函数实现尽量用,因为封装性。
当然一个类的non-member函数可以是另一个类的member函数。
类中转换函数要看实际情况。
不要手动释放资源。
auto_ptr和shared_ptr都有get函数 得到原始指针
例: auto_ptr<int>ptr; ptr.get() 返回一个int*
vector 和string动态分配数组。避免用指针。。
pimpl手法是定义成员函数swap中利用std::swap交换指针,再到类的namespace中定义一个swap函数中间调用swap成员函数,如果有可能,尽量再std中swap特化。
当调用swap时,第一反应在global或T的空间中找,然后std特化,然后default swap。