舉幾個例子,定義常量:
C:#define
Java:const
Python:都沒有(哈?有變量不就行了?你說你想讓它不能改?你不要改不就好了嗎?我們True和False都是變量)
C++:都支持!
指標 vs 參照:
C:指標
Java:只有參照,但是棧上的變量可以傳值也可以boxing/unboxing
Python:只有參照(棧變量?好吃嗎?)
C++:都支持!不僅支持這些,我們還支持指標的參照,參照的指標,左值參照,右值參照……
多型
C:透過結構體和指標自己定義多型
Java:單繼承 + interface
Python:DuckType + 多繼承(但很少用)
C++:多繼承,而且還支持透過結構體和指標自己定義多型,還可以讓類和結構體相容
所以C++最難學
C好比一個普通人在世界裏探險,一旦遇到坑掉下去就沒救了。Java給人插上翅膀讓人可以在更安全的天空飛,但是為了保障安全,限制翅膀飛行速度,還把人腿砍了,防止人往危險的地上落。
C++不僅插了翅膀,還是好幾對高效能的翅膀,也沒有任何保護措施,也不阻止你繼續在地上走,然後還在不斷往你身上加一些起落架啊、火箭噴射器啊、立體機動裝置啊之類的意義不明的東西……
Python:我想想,我們要不把人整個去掉,只留下翅膀算了?