2010-6-18

一、 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析構函數。編譯

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息