類(class)和面向對象:
顯示接口(explicit interface): 即在源代碼中可見, 可以在頭文件內看到類的所有接口;
運行期多態(runtime polymorphism):成員函數是virtual, 傳入類的引用或指針時, 在運行時, 會自動匹配接口, 可能是基類的接口, 也可能是派生類的;
模板(templates)和泛型編程(generic programming):
隱式接口(implicit interface):typename T, 在函數中, 所必須支持一組操作, 只有支持這些操作, 才能通過編譯;
編譯期多態(compile-time polymorphism):通過模板(template)的實例化(instantiated)函數模板(function templates), 和重載類似, 都是在編譯期綁定.
在隱式接口中, 操作符等重載, 已經包含隱式類型轉換.
如果是程序可以通過編譯, 無論是類還是模板, 都要需要通過多態滿足接口的要求, 否則無法通過編譯.
作者:csdn博客 Spike_King