因此const T * const Foo() const;第一个const由于左边没有对象, 作用于右边的T上, 表示函数返回的指针指向的值不能改变...., 但指向的对象依然可以改变....需要返回指针时, 不如返回智能指针, 这样能避免内存回收的难题, 并通过自定义删除器来解决跨DLL销毁问题
19 设计class犹如设计type
应该像"语言设计者设计基本类型时"一样审慎地研究class...其它情况尽量都使用传引用, 因为大多数时候copy的代价都大于指针, 且难以被编译器优化
21 必须返回对象时, 别妄想返回其reference
返回对象引用时, 一定要记住引用只是别名, 底层是指针,...然而泛用实现的std::swap函数仅仅是用temp和copy来交换两个引用对象, 除非效率可以接受否则还是应该自定义
好的swap函数的核心是借助pimpl(指针指向实现)手法, 利用交换双方的实现指针来完成交换