面試之專案問答

2021-08-08 01:39:08 字數 3127 閱讀 3345

class csingleton

~csingleton()

12 delete m_pinstance;

13 m_pinstance = null;

14 }

15 static csingleton *m_pinstance;

16 public:

17 static csingleton * getinstance()

22 };

23 csingleton* csingleton::m_pinstance = null;//類的靜態成員變數需要在類外邊初始化

1.類的建構函式私有,故非類的成員無法引用,將構造類的權利賦給類的成員函式

2.將類的物件和能引用類的建構函式的成員函式變為靜態物件,故不需要構造類的物件,直接用類名來呼叫靜態成員函式

目的: 類物件相互依賴的情況,作者想說明情況是使用」單例模式「保證獲取的乙個靜態變數是被初始化的,即類和類間存在引用關係

ogresingleton.h標頭檔案中

template class singleton

}

template class singleton

~singleton( void )

static t& getsingleton( void )

static t* getsingletonptr( void )

};

在我們自定義的類的標頭檔案宣告中加入了

static classname& getsingleton(void);

static classname* getsingletonptr(void);

來獲得類的唯一例項的物件和物件指標,並在原始檔中定義函式

其中首先將單例模板類的物件賦上型別,並給例項賦0

template<>::classname* ogre::singleton::ms_singleton=0;

定義函式:以scenariomanager為例

scenariomanager* scenariomanager::getsingletonptr(void)

scenariomanager& scenariomanager::getsingleton(void)

1. mfc包含哪幾類程式? 其中mfc應用程式又包含哪幾類?

2. mfc的中的大多數類都繼承自哪個類?

3. mfc主要要用到哪幾個類?及其各個類的作用。

4. mfc中有哪6類核心機制?cobject中封裝了哪些機制?

5. 在哪個類的什麼函式中進行mfc程式初始化? 相當於main功能的函式。

6. mfc應用程式的啟動機制的實現。(幾個步驟及相關函式)

7. 視窗的建立及視窗處理函式機制的實現。(幾個步驟及相關用到函式)

8. 訊息對映機制的原理及實現。巨集。(查詢訊息處理函式的幾個步驟及其函式)

9. mfc的訊息分類。自註冊訊息用什麼函式進行註冊?訊息對映巨集是什麼?

10. mfc選單、工具欄、狀態列所用的類是什麼?

11. 怎麼定義乙個檢視視窗?

12. 劃分視窗使用什麼類? 劃分視窗有哪兩類,有什麼區別?

13. 執行時類資訊 機制的巨集,及原理。cruntimeclass的內容,iskindof實現方法。

14. 動態建立 機制的巨集,及實現。與執行時類資訊在內容新增上的區別?

15. 訊息的派發會經過哪幾個類?一般在哪個類裡進行處理?setactiveview的作用。

16. 單文件、多文件模板類是什麼? 儲存模板類用什麼函式?新建模板用什麼函式?

17. 單文件檢視的建立過程及所用到的相關函式。

18. mfc繪圖有哪幾類dc?各自的類名,及區別。

19. mfc有哪幾類繪圖物件?各自的類名。

20. mfc有哪幾類資料集合類?cmap的底層實現?

21. mfc的檔案類是什麼?檔案查詢類是什麼?

22. 序列化機制 的巨集,怎麼使用? 執行》和《時進行的內部操作及其相應函式。

23. mfc的對話方塊的種類,各自怎麼使用?及相關函式。

24. 定義對話方塊資料交換的步驟,及使用方法,實現原理。

25. 通用對話方塊有哪些,試舉例。

26. mfc常用的通用控制項有哪些?舉出類名。

27. mfc的動態庫有哪幾種型別?擴充套件庫一般用來做什麼?

28. mfc的執行緒有哪幾類? 相互有什麼區別?各自的建立方法是什麼?

29. vc環境下可以使用哪幾類socket? 其中mfc的socket類 有哪幾種,各自區別?類名是什麼?用什麼函式初始化mfc的socket庫。

windows程式是基於訊息程式設計的

windows訊息迴圈:當又訊息產生時,作業系統(核心)會把訊息放入應用程式(程序/執行緒)的訊息佇列中,應用程式通過getmessage函式從這個佇列中取出一條具體的訊息,並通過dispatchmessage函式將訊息交給作業系統(核心),後者呼叫應用程式的視窗過程,即視窗過程函式wndproc進行處理。該函式利用switch-case結構判斷並分類處理。

訊息路由的實現方式

部分mfc類組織結構

afxwinmain函式

cwinthread *pthread=afxgetthread();

文件/視類結構

傳送給視窗的訊息是如何被mfc框架通過控制代碼對映表和訊息對映表來用視窗類的處理函式進行響應的

windows訊息:wm_lbuttondown、on_bn_clicked

控制代碼對映表--mfc在後台維護了乙個視窗控制代碼和對應的c++物件指標的對照表

訊息對映表--訊息和訊息函式靜態對照表--原始檔頭部的訊息對映巨集將訊息和訊息響應函式關聯起來,一旦有訊息產生,程式就會呼叫相應的訊息響應函式來處理

訊息處理函式--標頭檔案中的訊息響應函式宣告(原型)、

當有訊息需要處理時,程式搜尋該訊息靜態表,檢視該類能否處理此訊息,並依照靜態表找到並呼叫對應的訊息處理函式

windowproc()函式--onwndmsg函式

與對話方塊上控制項相關聯的成員變數

詳述:

面試歸來兮之問答session cookie

1 session儲存在伺服器,客戶端不知道其中的資訊 cookie儲存在客戶端,伺服器能夠知道其中的資訊。2 session中儲存的是物件,cookie中儲存的是字串。3 session不能區分路徑,同乙個使用者在訪問乙個 期間,所有的session在任何乙個地方都可以訪問到。而cookie中如果...

Spring Boot專案實踐之問答社群

專案源 已託管在 github,歡迎 star fork。qa是乙個基於 b s 架構而設計開發的社群 主要為使用者提供以下服務 spring boot mybatis mysql redis freemarker 為了保證使用者資訊保安,系統對使用者密碼採用 salt md5 方式進行加密。使用者...

Redis 面試常見問答

通常,我們會使用快取用於緩衝對 db 的衝擊,如果快取宕機,所有請求將直接打在 db,造成 db 宕機 從而導致整個系統宕機。如何解決呢?2 種策略 同時使用 對快取做高可用,防止快取宕機 使用斷路器,如果快取宕機,為了防止系統全部宕機,限制部分流量進入 db,保證部分可用,其餘的請求返回斷路器的預...