VC 常見問題(2)

2021-05-22 16:44:30 字數 1984 閱讀 4915

afx_msg

:例:在

cdrawview

類響應滑鼠左鍵按下訊息--->

在標頭檔案

(drawview.h)

中宣告訊息響應函式原型。

afx_msg void onlbuttondown(uint nflags, cpoint point);

說明:afx_msg

巨集表示宣告的是乙個訊息響應函式。

先按照以上所示宣告訊息對映函式,

然後在drawview.h

對應的drawview.cpp

中的begin_message_map()

裡面用windows

訊息把控制項和它對應的相應函式聯絡起來

,如下:

是控制項的id

begin_message_map(cmainframe, cframewnd)

end_message_map()

on_command: 在

mfc中的訊息對映中,有這樣幾種:

on_command(id

號,函式),

on_wm_lbuttondonw().....

含義:

on_command(id

號,函式

)是將選單

,或工具欄命令對映到指定的函式上

on_wm_lbuttondown

是對映wm_lbuttondown (

滑鼠左鍵按下

) 到成員函式

onlbuttondown(

uint nflags,

cpoint point);2

、只有靜態常量整型資料成員才可以在類中初始化

class test ;b

可以在類外進行初始化,且所有物件共享乙個

b的值:

int test::b = 2;

static

的int

型要寫在外面。

double

的可以寫在裡面,

effective c++

裡面有講到的,不過可能舊的編譯器不支援也有可能。

3、類初始化

類的初始化大致上有這麼幾個方面。

a.靜態變數的初始化

b.一般例項變數的初始化

c.建構函式的初始化

初始化的難點在於繼承體系中。當有繼承體系時,初始化始終要遵循的原則就是,無論如何必先初始化基類

0.當載入當前類時,若當前類有繼承體系,則依次無條件載入基類

0』.先從最頂的基類開始順序初始化其靜態

static

變數,接著初始化當前類的靜態

static

變數(也就是說,

static

變數的初始化是伴隨著類被裝載時而初始化的,它的初始化在任何建構函式執行前)

1.先從最頂端基類,構造基類物件。

(假如建構函式中有

this

或super

呼叫,則先執行此呼叫)

1.1.首先按出現次序初始化其實例變數

1.2.再執行其建構函式體

2.依次遞迴上述步驟

<

此外,例項變數可以不顯式初始化(系統會賦預設值),但是區域性變數必須顯式初始化

4、c++

友元c++

友元c++

友元通常對於普通函式來說

,要訪問類的保護成員是不可能的,如果想這麼做那麼必須把類的成員都生命成為

public(

共用的)

,然而這做帶來的問題遍是任何外部函式都可以毫無約束的訪問它操作它,

c++利用

friend

修飾符,可以讓一些你設定的函式能夠對這些保護資料進行操作,避免把類成員全部設定成

public

,最大限度的保護資料成員的安全。

友元能夠使得普通函式直接訪問類的保護資料,避免了類成員函式的頻繁呼叫,可以節約處理器開銷,提高程式的效率,但矛盾的是,即使是最大限度的保護,同樣也破壞了類的封裝特性,

IIS 常見問題 2

錯誤403.1 禁止訪問 禁止執行訪問 解決方法 錯誤403.1 禁止訪問 執行訪問被拒絕 解決方法 配置iis的時候,如果出現以下錯誤 請嘗試下列操作 開啟localhost 主頁,然後尋找指向所需資訊的鏈結。單擊重新整理按鈕,或者以後重試。http 403.1 禁止訪問 禁止可執行訪問 inte...

聯盟常見問題2

xmlns bgcolor f0f0f0 style left 167px height 607px width 886px top 98px position absolute width 754 border 0 bgcolor ffffff cellspacing 20 width 326 a...

iOS常見問題 2

一 模擬器黑屏 解決方法 二 打 時,xcode沒提示 解決方法 0.點選preferences 1.進入text editing 2.勾選 三 有時候可能在勾選 autolayout的時候,搞錯了物件,誤把控制器的view的user interaction enabled勾選掉了。解決辦法 use...