Tips - C++
| 2013-09-23 08:56:32 | 派生類對其基類類型對象的protected成員沒有特殊訪問權限; |
| ? | 只有聲明,而未定義的類,不可以作為基類; |
| ? | ?C++函數默認不使用動態綁定,要觸發,需要滿足兩個條件: |
| ? | ?非虛函數總是在編譯時根據調用該函數的對象、引用或指針類型而確定; |
| ? | ?派生訪問標號將控制派生類的用戶對從Base繼承而來的成員的訪問; |
| ? | ?能否調用private成員,要看調用位置所處的函數權限; |
| ?2013-09-24 08:47:56 | ?C++的函數調用默認不使用動態綁定; ?動態綁定條件: 1. 只有指定為虛函數的成員才能進行動態綁定; 2. 必須通過基類類型的引用或指針進行函數調用; |
| ? | ?通過引用或指針調用虛函數時,在運行時確定調用哪個函數,被調用的是與動態類型相對應的函數; ?非虛函數是在編譯時根據調用該函數的對象、引用或指針的類型而確定; |
| ? | ?類賦值操作符防止自身賦值的目的:Class?A里有個指針p。賦值時,先要釋放原來的p,然后再把 ?rhs的p復制一份。當自己賦給自己時,delete?this->p的同時,rhs->p也給釋放了(this和rhs其實是 ?同一個對象)。如果不先判斷下是不是自己,就會出問題。 |
| ? | ?析構函數必須設計為虛函數:當基類指針指向派生類成員時,由于析構函數的順序導致先執行基類 ?的析構函數,會出錯。 |
| ? | ?構造函數不能定義為虛函數:構造函數是在對象完全構造之前運行的在構造函數運行的時候,對象 ?的動態類型還不完整,不能被指針調用; ?賦值操作符有不需要為虛函數:不同繼承層次的類,賦值操作符函數中的形參類型不同,不是同一 ?函數。 |
| ? | ?基類類型的指針(引用)只能訪問對象的基類部分。 |
| ? | ?虛函數必須在基類和派生類中擁有同一原型,否則就變為重載函數。 |
| ? | ?通過指針容器解決矛盾:容器只能存儲單一類型的數據 vs 基類 派生類類型。 |
| ? | ?抽象基類(純虛函數)阻止用戶創建對象。 |
| ? | ?句柄類:對基類進行包裝,存放智能指針。 |
| ? | ?使用帶比較器的關聯容器對基類以及派生類成員進行存儲,排序。 |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
?
?
轉載于:https://www.cnblogs.com/Java-Rainbow/p/3334229.html
總結
以上是生活随笔為你收集整理的Tips - C++的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vi 常用快捷键
- 下一篇: log-malloc2 0.2.4 发布