C中的物件導向

來源:互聯網
上載者:User

      四月電腦語言熱門排行榜,C王者歸來,重登王者寶座,居然幹掉了JAVA。說在前面的。

      都說c++是物件導向的,可為了滿足c++語言的初衷:a better C!c++不得不相容C,於是我們還是看得到寫在類外面的函數、變數什麼的,C#就不同了,結合Java和c++的各自優點,完全的物件導向,今天我要說的是用C來模仿C#中的物件導向,注意,僅是模仿~~~

1)、c#中有類class,那麼在C中用結構體struct代替;

2)、c#類中有成員函數,那麼C中用函數指標代替;

下面各定義一個類和結構體,來表示一種表單,當點擊表單時,提示表單的ID和表單的標題:

c#中的類:

C#中的類

 1 class Window
 2 {
 3    private string WndText;
 4    private string WndID;
 5    public Window(string text,string id)
 6    {
 7         WndText=text;
 8         WndID=id;
 9    }
10    public void OnClick()
11    {
12      Console.Write("表單"+WndID+"的標題為:"+WndText);
13    }
14 }

 

用戶端程式:

1 Window win=new ("執行個體表單","0x12345678");
2 win.OnClick();//顯示資訊

 

 

C中的結構體

1 Struct Window
2 {
3    char *WndText;
4    char *WndID;
5    void (*OnClick)(char *text,char *id);//函數指標6 };

 

用戶端程式:

代碼

void fun(char *text,char *id)
{
   printf("表單%s的標題為:%s",id,text);
}
Window win;
win.WndText="c中的表單";
win.WndID="0x87654321";

win.OnClick=fun;//函數指標

win.OnClick(win.WndText,win.WndID);//像類一樣調用它的"成員函數"

 

網上見一牛話:如果你愛編程,那麼請愛C;如果你愛C,那麼請愛指標;如果你愛指標,那麼請愛指標的指標。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.