コンストラクタのオーバーロード
http://www.geocities.jp/ky_webid/cpp/language/011.html
ってやっぱりコンストラクタには引数が渡せたんですね。
まずそのやり方ですが、以下のよう書きます。
#include <iostream> class CClass { public: CClass(int); }; CClass::CClass(int num) { std::cout << num << std::endl; } int main () { CClass obj(100); return 0; }
$ main 100
という感じです。そして引数が渡せるということはオーバーロードもできるということです。
試してみます。
#include <iostream> class CClass { public: CClass(); CClass(int); CClass(int,int); }; CClass::CClass() { std::cout << 0 << std::endl; } CClass::CClass(int num) { std::cout << num << std::endl; } CClass::CClass(int num1,int num2) { std::cout << num1+num2 << std::endl; } int main () { CClass obj1; CClass obj2(100); CClass obj3(10,20); return 0; }
$ main 0 100 30
うまくいってますね。