摘要:4.進階――類結構樹,父類不是純虛類的類前面僅僅講的是父類是純虛結構的情況(面向對象建議的是所有類的基類都是從純虛類開始的),那么當類層次比較多的情況下,出現父類不是純虛結構怎么辦呢。嘿嘿,其實在C中的實現比C++要簡單多了。因為C中各個函數是分散的。在這里使用宏定義是一個很好的辦法:比如兩個類Act1,ActByOther
4.進階――類結構樹,父類不是純虛類的類
前面僅僅講的是父類是純虛結構的情況 (面向對象建議的是所有類的基類都是從純虛類開始的), 那么當類層次比較多的情況下,出現父類不是純虛結構怎么辦呢。嘿嘿,其實在C中的實現比C++要簡單多了。因為C中各個函數是分散的。
在這里使用宏定義是一個很好的辦法:比如兩個類Act1,ActByOther1“繼承”Act1:
MyVirtualInterface* ActByOther1_CreatInterface()
{
index=FindValid()
//對象池或者使用Malloc
if(index==-1) return NULL;
St[index].Foo1= ActByOther1_Foo1;
// Act1_Foo1要在下面具體實現
St[index].Foo2= ActByOther1_Foo2;
St[index].Foo3= ActByOther1_Foo3;
Return &st [index];
}
#define ActByOther1_Foo1 Act1_Foo1 //這就是繼承 嘿嘿
ActByOther1_Foo2(){} // 可以修改其實現
ActByOther1_DoByOther() {} //當然就可以添加新的實現咯
2026年軟考真題答案掃碼查看,估分一步到位??????

軟考備考資料免費領取
去領取
專注在線職業教育25年