一、 C++ 不容許「讓reference改指向不一樣對象」ide
二、 若是你打算在一個「內含reference成員」的class內支持賦值操做(assignment),你必須本身定義copy assignment操做符函數
三、若是某個base classes將copy assignment操做符聲明爲private, 編譯器將拒絕爲其derived classes生成一個copy assignment操做符。對象
四、 (1)若是你不想讓編譯器自動生成函數,應明確拒絕。好比說,對於複製構造函數,對於一個類,若其應只有一個對象,生成一個副本則毫無道理。則應該爲此類聲明一個私有的複製構造函數(由於若是你不聲明,在須要的時候,編譯器會給他生成一個public的複製構造函數),若是你聲明瞭一個私有的,則編譯器不會再生成。繼承
四、 (2)不讓編譯器爲類生成複製構造函數,還有另一種方法,就是讓這個類去繼承一個具備私有複製構造函數的base class。 對於第一種方法,儘管編譯器不會生成了,可是友元以及成員函數仍是能夠調用,但這第二種方法就能夠徹底避免這個缺陷。編譯器
五、 爲駁回編譯器自動(暗自)提供的機能,可將相應的成員函數聲明爲private而且不予實現。固然,使用基類也是一種方法it
六、爲多態基類必定要聲明virtual析構函數。編譯