1 dll,lib處理實現 .lib文件中包含什麽? dll在內存中被多個函數***享,有幾個拷貝?
簡單說,lib裏面只有符號,dll裏面才是具體的實現. dll並不是拷貝到每壹個調用者的進程空間,而是只在內存中保留壹份拷貝。通過引用計數的方式控制其卸載。
但是dll中的全局變量是要被拷貝到每壹個調用者的進程空間的
2 template<double>,template<int>等編譯的時候作為幾個類
如果沒有記錯,是兩個.模板都是編譯時產生代碼,所以會出現兩個類.如果程序中的類型較多,就會展開比較大的代碼,但是速度會快.
3 struct ,class的區別,聯系
只是成員變量或者函數默認的屬性,struct默認是public,class是private
4 MAcro,inline區別,實現.編譯運行時
準確來說,內聯要更加安全.使用內聯,參數需要精確地進行壹次求值,參數類型被檢查,並且被正確地進行必要的轉換,避免了宏的壹些問題.也方便調試.簡單說,內聯更加像函數.
5 進程與線程區別
最主要: 線程是執行代碼的,CPU調度的單元,進程是個資源的容器
6 hdc-cdc區別聯系
cdc是壹塊空間,保存壹定的數據,hdc是放在進程的句柄表裏面,用來標示所代表的cdc的
7 model dialog,modeless dialog,從創建到銷毀全過程具體描述
模式的是CDialog的DoModal調用CreateIndirect創建對話框,然後通過壹個循環自己處理消息的分發;無模式的是通過create創建,類似於壹般窗口
8 各個線程new的內存,別的線程是否可以使用?
不可以,因為線程new的空間是在自己的進程空間,別的進程是得不到的.
9 RUNTIME_CLASS, is what?
建議看壹下深入淺出mfc
RUNTIME_CLASS returns a pointer to a CRuntimeClass structure for the class specified by class_name. Only CObject-derived classes declared with DECLARE_DYNAMIC, DECLARE_DYNCREATE, or DECLARE_SERIAL will return pointers to a CRuntimeClass structure.
發autodesk面試題目供大家討論
1.C/C++ 壹個空類占多少空間,多重繼承的空類呢?
inside c
class X {};
class Y : public virtual X {};
class Z : public virtual X {};
class A : public Y, public Z {};
class B : public X {};
class C : public X {};
class D : public X {};
class E : public C, public D {};
1
4
4
8
1
1
1
1
2. 析構函數定義成虛函數?
delete base;
3.public和private繼承的區別
4. 壹個類不允許繼承如何作?
5.多態的原理?
6.內聯函數在哪定義?
7.析構函數可以是內聯函數麽?為什麽?
可以,
8.析構函數可以拋出異常麽?為什麽?
不行
9.在多繼承的時候,如果壹個類繼承同時繼承自class A和class B,而class A和
B中都有壹個函數叫foo(),如何明確的在子類中指出override哪個父類的foo()?
其他的壹樓說的很全面了 就補充壹點面試時註意表達的邏輯性
可以去網上搜搜前人的經驗 多準備點 就當壹次歷練 別給自己太大壓力
心態很重要
最後祝妳成功~~