c++ 重载
函數重載是指兩個函數具有相同的函數名,但是函數參數的個數或者類型不同。函數重載多發生在頂層函數之間或者同一個類中,函數重載不需要構成繼承關系。
class base { public :base();base(int a);base(int a, int b);base( base &);int fun(int a);int fun(double a);int fun(int a, int b); private:int x;int y; }; int g(int a); int g(double a); int g(int a, int b);在本例中,我們列出了幾種函數重載的情形
- 首先是函數的構造函數重載,類中聲明了四個構造函數,這四個函數構成重載的關系,前面三個函數之間只是函數參數數目不同,第四個構造函數為拷貝構造函數,該函數與默認構造函數和兩個帶參構造函數的參數類型不同。
- 類中的成員函數同樣可以進行重載,如本例中 base 類的三個 fun() 函數。
- 前兩種情況是類內部的函數重載,在類外部頂層函數也同樣能夠成函數重載關系。如本例中的 g() 函數,這三個函數都是頂層函數,由于函數名相同,但是函數參數不同,構成函數重載關系。
- 函數重載是編譯期綁定,它并不是多態。
總結