c 在vc 中的應用基礎 1

2021-06-07 21:05:43 字數 1796 閱讀 8809

公司最近有個廣告ts流生成器的工具,需要用到mfc來實現。mfc斷斷續續學了半年,似懂非懂。下週3要催著交demo,頓時感到壓力和緊迫。
於是重拾c++,我一直相信:無論時光怎麼流逝,技術怎麼發展,基礎的東西永遠都不會過時。mfc說白了就是c++各種類的封裝,組合的一種微軟定製的框架。

只要靜下來認真的搞,一定能摸透。

今天開始溫習c++的關鍵語法:封裝,繼承,

過載,多型,虛函式,靜態成員,類模板。

0.封裝和繼承

c++是一種新的程式設計師思維模式的語言,乙個人思維模式的扭轉很是不易。

學習c++的難點就是以物件導向的視角看到看待一切事物。

類及其成員---封裝-->屬性&行為。

繼承-->a(派生) is b(base)

0.1物件的記憶體模型

crect--->

crect a,b;

物件a,b有各自的m_color;但是共享相同的crect::setcolor(int color,crect* this//隱藏指標);

0.2 this指標

class cshape

public:

void  setcolor(int color)

//被編譯後其實是:

//void setcolor(int color,cshape*this)

1.過載:

1.1函式的過載   舉例:

void showmessagea(const char* text);

void showmessageb(const char* text,unsigned int type);

一組過載函式有引數型別和個數加以區分。函式的返回值對區分過載函式沒有意義。

1.2運算子過載

#includeclass cadd

cadd(int value)

public:

int m_operand;

};//過載「+」運算子,操作cadd類

cadd operator +(cadd a,int b)

int main(int argc,char*argv)

這程式演示了運算子過載,一般將它定義為某類的友元函式,或定義為類的成員函式。

2.虛函式與多型(polymorphism)

虛函式是為了實現更一般性的呼叫,白話表述:更通用型,父類子類中都有相同的過載函式(函式前有virtual), base *p =dervied; p.fun();//這時呼叫的dervied類的fun();

如果沒有virtual關鍵字,則呼叫的函式由物件指標的型別決定。

多型:相同的指令呼叫不同的函式(父子類中過載的函式,需有virtual關鍵字)

虛函式是實現多型的關鍵。

polymorphism的目的,讓基類**,能夠完成無礙的繼續處理派生類物件

純虛函式:包含它的類是乙個抽象類,不能例項化。

virtual void display()=0;

總結:1.派生類重新定義乙個成員函式,應把基類前加入virtual.

2.多型:單一指令呼叫不同函式。

3.虛函式是實現多型的和動態繫結的關鍵。

4.擁有純虛函式的類為抽象類,不能例項化物件;但可以擁有指向抽象類的指標,以便操作抽象類的各個派生類。

5.虛函式派生下去依然為虛函式,可以省略virtual.

參考資料

[1]:vc++程式設計技術與難點剖析.  辛長安

[2]:深入淺出mfc   侯捷

static在C 中的應用

1 案例描述22 static 語法特性簡介 22.1 修飾變數 22.1.1 靜態全域性變數 22.1.2 靜態區域性變數 22.1.3 靜態資料成員 22.2 修飾函式 22.2.1 靜態函式 22.2.2 靜態成員函式33 應用場合 33.1 將變數 函式的作用域限定在本原始檔中 33.2 儲...

Spread在C 中的應用

spread屬於com類的乙個 元件,相信大家在vb資料庫程式中應用很廣。現在就簡單摘要一下該元件在c 中的應用。首先是把spread新增到工程中,這是普通的.net中對com引用,這裡不再詳細描述,只是說明一下 該控制項位於spread的bin目錄下,名稱為spr32x60.ocx,別引用錯了。再...

多型在C 中的應用

多型在c 中的應用 c 語言經過專門設計,以便不同庫中的基類 與派生類之間的版本控制可以不斷向前發展,同時保持向後相容。這具有多方面的意義。例如,這意味著在基類 中引入與派生類中的某個成員具有相同名稱的新成員在c 中是完全支援的,不會導致意外行為。它還意味著類必須顯式宣告某方法是要重寫乙個繼承方法,...