C 面向對象程序設計

                                                                  C 面向對象程序設計

     運行時動態綁定一直以來都是面向對象的優勢,比如C++\JAVA等面向對象編程語言都有這種特性。

     但是,其實C語言也可以有這樣的優勢。在C語言要實現這種方式,需要利用結構體、以及結構體的操作函數表。

     然後再利用工廠模式、或者橋模式,在程序運行時動態綁定。

     例子如下:

      typedef struct person person_t;
      typedef struct person_opt person_opt_t;
      struct person
      {
    void *data;
    person_opt_t *opt;
      };


      struct person_opt
      {
   void (*say)(person_t *p);
   void (*walk)(person_t *p);
      };

struct person_opt teacher_opt;
struct person_opt student_opt;


person *create_person(int type)
{
person *p = (person *)malloc(sizeof(person));
if(type == 0)
{
p->opt = &teacher_opt;
}else
{
p->opt = &student_opt;
}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章