構造体メンバをコンストラクタの初期化子リストで初期化するには

解決


tos  2008-10-29 18:30:39  No: 69183

はじめまして、tosと申します。

下記のようなクラスが有った場合に、

class HOGE {
  public:
    HOGE();
  private:
    struct PIYO {
        int dummy;
    } ;
    PIYO piyo;
} ;

コンストラクタの初期化子リストで
どのように記述すれば良いのでしょうか?
HOGE::HOGE()
     : ?????
{
}


επιστημη  URL  2008-10-29 18:57:33  No: 69184

struct PIYO にコンストラクタ定義してはいかがですか?


tos  2008-10-29 19:52:52  No: 69185

επιστημηさん、回答ありがとうございます。

class HOGE {



  private:
    struct PIYO {
        int dummy;

        PIYO() : dummy(100) {}
    } ;
    PIYO piyo;
} ;

上記のような形で初期化できたのですが、
もし、下記のようにpiyoが配列であり、
    PIYO piyo[10];
配列ごとに初期値を変えたい場合は、どのようにすれば良いのでしょうか?


επιστημη  URL  2008-10-29 19:59:23  No: 69186

代入はできるけど初期化はできないでしょうね。


tos  2008-10-29 20:04:18  No: 69187

わかりました。
では、代入で処理することにします。

επιστημηさん、ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加