コンストラクタのオーバーロード

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

うまくいってますね。