[程式]GObject入門使用

86 views
Skip to first unread message

cpyi

unread,
Apr 9, 2013, 7:57:53 AM4/9/13
to code_fellow...@googlegroups.com
物件導向是一個非常有用的概念,其實在C語言裡面,也能藉由某些方式實作物件的概念。
最具代表性得就是利用glib函式庫中的gobject部分。
我之前看了一個文章,http://www.ibm.com/developerworks/cn/linux/l-gobject/,感覺寫得不錯,可是還是無法理解內容。
有了物件導向的一些概念後,就會比較能理解這個C裡面物件導向函式庫的內容。
我想每個C的基本教義派都應該了解這個物件的實作方法,這是很特別的思考模式跟設計方法,利用C。
此外,這個東西除了物件導向的實作外(自訂型別、封裝),因為他是gtk圖形函式庫的底層,他還實作了信號系統,舉例而言,你按視窗右上角的X,他會關閉程式,按視窗的事件,就會發出信號,通知某個函式去處理,信號基本上是這樣的概念。
用這個函式庫寫類別是一個非常繁複的過程,需要很多MACRO的定義,函式指標的使用等等,可是能用另一種方式實作類別,並且更進一步了解物件系統內部的實作。
如果要用gtk寫大型的視窗程式,這也是很重要且基本的知識。
我用這個物件系統來做一個範例,簡單的範例,一個鬧鐘類別,有status,time,name這些data member,有set_...,get_...這些member function,有broken、ring這些信號,作一個初步的練習。
打包(包括Makefile、實際使用檔案):http://www.nba.nctu.edu.tw/~cpyi/alarm_clock.tar.gz
Reply all
Reply to author
Forward
0 new messages