2019年2月11日 星期一

overload, override, polymorphism

Overload
一個func name可以take不同的input parameter
C比較難做到
https://stackoverflow.com/a/25026358


Override
C++11提供之修飾字only for existed virtual function
成功修改繼承來的virtual function的時候,加不加override的效果一樣
但修改繼承virtual function失敗時,沒有加override的話會產生一個新的virtual function,有加override會提示error

Polymorphism
class anime
  virtual void eat(food f)
class cat : anime
class dog : anime

anime *p1 = new cat()
anime *p2 = new dog()
p1->eat()
p2->eat()
不用知道p1 p2是何種類別,用父類別去指定即可