1. 對于單純的常量,最好以const對象或者enums替代#define
對于形似函數的宏,最好用inline替代#define
2. 編譯器可以暗自為class建立default構造函數、copy構造函數、copy assignment操作符,以及析構函數。
3. 多态基類應該聲明一個virtual析構函數,如果不是作為基類或者多态用,則不應該聲明virtual析構函數
4. 指派函數應該確定複制“對象内的所有成員變量”及“所有的基類成分”
5. 指派函數需要考慮自我指派的異常情況
Widget& Widget::operator=(const Widget& rhs)
{
if(this == &rhs) return *this; //考慮自我指派異常情況
.....
return *this;
}