アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。

class CFoo
{
    CFoo( int a ){}            // 1
    CFoo( float b ){}           // 2
    CFoo( bool c ){}           // 3
    CFoo( int a, float b, bool c )    // 4
    {
    }
} ;

上記のようなクラスで 4 番目のコンストラクタが呼ばれた場合に、
a, b, c のパラメータを使って、1、2、3 を呼ぶようなことは可能でしょうか ?
もしご存じの方がいらっしゃいましたら教えて頂けないでしょうか。

A 回答 (2件)

class CFoo


{
public:
CFoo( int a ){} // 1
CFoo( float b ){} // 2
CFoo( bool c ){} // 3
CFoo( int a, float b, bool c ) // 4
{
CFoo(CFoo(a),CFoo(b),CFoo(c));
}
private:
CFoo(CFoo& cfi, CFoo& cff, CFoo& cfb)
{
// cf1, cff, cfbのメンバー(privateであっても)を使うことができる
}
};
コンストラクターの中で、一時的な3つのオブジェクトを作ってそのメンバーのいいとこどりをします。
メンバー初期化リストをうまく使えばもっとスマートに書けるでしょう。
    • good
    • 0
この回答へのお礼

なるほど、もう一つ設ける方法ですか。
気がつきませんでした。
初期化リストについていろいろ考えてみます。
ありがとうございました。

お礼日時:2012/07/23 17:36

C++11 では「どれか 1個」を呼ぶことはできるけど, 「3つ全部」は無理... というか, コンストラクタの意味を考えたらだめ

なことは明らかでは?
    • good
    • 0
この回答へのお礼

早々のレスありがとうございます。
安直に考えていました。
よく考えればその通りだと思います。

お礼日時:2012/07/23 17:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!