选择non-member,non-friend,替换member函数
从封装进行考虑。如果某些东西被封装,它就不再可见。越多东西被封装,越少人可以看见它。而越少人看到它,我们就有越大的弹性去改变它。
越多东西被封装,我们改变那些东西的能力就越大。这就是我们首先推崇封装的原因:它使我们能够改变事物而只影响有限客户。
导致较大封装性的是non-member,non-friend函数,因此,实现同一种功能,选择它们来实现。
选择non-member,non-friend,替换member函数
从封装进行考虑。如果某些东西被封装,它就不再可见。越多东西被封装,越少人可以看见它。而越少人看到它,我们就有越大的弹性去改变它。
越多东西被封装,我们改变那些东西的能力就越大。这就是我们首先推崇封装的原因:它使我们能够改变事物而只影响有限客户。
导致较大封装性的是non-member,non-friend函数,因此,实现同一种功能,选择它们来实现。
template <typename T> void swap(T& a, T& b) { T tmp(a); a = b; b = tmp; }
class People { public: People() { cout << " construct fun " << endl; } People(const People&