11章 オーバーロード
http://www.geocities.jp/ky_webid/cpp/language/011.html
お次はオーバーロードの話です。
オーバーライドとは別物です。名前がややこしいですね。
同じ関数名でも、引数の型が違えば定義できるというのがオーバーロードです。
これは便利ですね。C言語のときはfoo_intとかfoo_charとかわざわざ別名で作らないといけなかったのでこの機能は素晴らしいです。
実装してみます。
#include <iostream> class CClass { public: void foo(int); void foo(char*); }; void CClass::foo (int num) { std::cout << "int: " << num << std::endl; } void CClass::foo (char *str) { std::cout << "char*: " << str << std::endl; } int main () { CClass obj; obj.foo(100); obj.foo("foo"); return 0; }
$ main int: 100 char*: foo
ちゃんと別の関数が呼ばれていますね。