比如在一個項目中,有大量的數據結構,他們都是雙向鏈表,但又想共用一套對鏈表的操作算法,這怎么做到呢,C中又沒有C++中的繼承,不然我可以繼承一父(類中只有兩個指針,一個向前一個向后),而其算法可以寫在你類中的虛函數中,供子類使用。如:
class Links{public: Links* back; Links* forword;
virtual Add(){ ... }; virtual Del(){ ... }; virtual Ins(){ ... }; virtual Print() =0; ....
};
于是對于特定的數據結構我們可以:class mylinks : public Links { public: char* myname; char sex; int age; ... virtual Print(){ .... }
};對其操作時都可以使用你類的泛型算法。
在C中,該如何做呢?我們用C中的指針和強制類型轉可以做到。
下面是我總結出來的一個小的程序,體現了用指針的彈性來實現這一繼承的效果:(我在Liniux下的GCC調試通過)
=======================================