下面這段程式,列印出來的數字應該是什麼?
#include
"stdio.h"
int a=1;
intmain()
a和b分別是全域性變數和區域性變數,如論printf列印的時候是從左到右運算,還是從右到左運算,兩行結果都應該一致才對,但是真正的結果卻是下圖(codeblocks程式設計環境)
我們把++a和a++的位置換一下,改為下面的程式
#include
"stdio.h"
int a=1;
intmain()
所以,在函式呼叫的時候,不要使用自加自減運算子,因為你不知道會得到什麼樣的結果! C 不要在建構函式和析構函式中呼叫虛函式
這裡先執行個示例 include using namespace std class base virtual void fun virtual void fun 0 base class derived public base virtual void fun virtual void fun d...
不要在建構函式中呼叫可重寫的方法
原因 非密封型別的構造函式呼叫其類中定義的虛方法。規則說明 呼叫虛方法時,直到執行時之前都不會選擇執行該方法的實際型別。構造函式呼叫虛方法時,可能尚未執行呼叫該方法的例項的建構函式。如何修復衝突 要修復與該規則的衝突,請不要從某型別的建構函式中呼叫該型別的虛方法。何時禁止顯示警告 不要禁止顯示此規則...
不要在建構函式和析構函式中呼叫虛函式
提到建構函式和析構函式,想必大家肯定是非常了解,但是能否在建構函式或是析構函式中呼叫虛函式呢?答案是千萬不要這麼做,這麼做不會得到大家想要的結果。首先提一下建構函式,建構函式的順序是從基類開始構造 子類,如果在基類中呼叫虛函式,由於建構函式基類中僅存在自身 或其父類,如果存在 不會根據虛函式表的規則...