1.今天被朋友問了乙個問題:
#include #include #include #include using namespace std;
class father
protected:
virtual void start()
private:
int a;
int dd;
double fd;
};class child : public father
void getfather()
private:
int b;
double d;
};int main(int argc, const char *argv)
這個示例的輸出結果:實際是:child start
此時run中呼叫的start()方法是派生類的start而不是基類中的start!問題是此時的訪問start的方法是靜態聯編還是動態繫結?
先看乙個示例:
#include #include #include using namespace std;
class d
virtual void printb()
};int main(int argc, const char *argv)
分析:printa()是非虛成員函式,d-> 和d2. 都可以實現對它的訪問,但是當訪問虛函式時(多型性)d->實際指向的物件是空的,所以肯定會出錯!
總結:虛函式的多型性表現不是基類指標指向派生類,實際上可以讓乙個派生類指標指向另乙個派生類(同乙個基類),實現多型!
#include #include #include using namespace std;
class a
virtual void print()
};class b : public a
};class c : public a
};int main(int argc, const char *argv)
當print是虛函式時輸出:
type:1b
b----
type:1b
b當print是非虛函式時的輸出:
type:1a
type:1a
a----
type:1a
type:1a
a分析:
一些的總結
大學的教育模式是先教你原理,在教你怎麼用工具 而缺少樂趣,一般大牛 的思維模式都是這樣 先知道原理 在用工具 其實對於普通人來講,一般都是 知道原來還有這種利用方式?到 我要用工具來提高效率 廣用效率還不行 我要知道原理 誒好像現在工具滿足不了我的需要了,我要自己新增規則 新增的規則 以及滿足不了我...
BOM 的一些總結
一 window物件 1 window 物件是整個瀏覽器的核心,所有物件和集合都以某種方式回接到window物件。2 如果頁面使用的框架集合,每個框架都由他自己的window物件表示,存放在 frames 集合中,在這個集合中,可用數字 由0開始,從左到右,逐行的 或名字對框架進行索引。3 乙個更加...
FastReport的一些總結
1 問題 中文memo時常在執行時不能正確顯示。但用檔案載入後的memo沒有問題。由於fastreport預設把報表檔案儲存在dfm裡面,我看了下dfm,fastreport的memo編碼是以utf8存的。估計還是字符集的問題。所以解決方法是 直接loadfromfile.2 fastreport中...