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

解決


tos  2008-10-29 09:30:39  No: 69183  IP: 192.*.*.*

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


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

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

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

編集 削除
επιστημη  URL  2008-10-29 09:57:33  No: 69184  IP: 192.*.*.*

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

編集 削除
tos  2008-10-29 10:52:52  No: 69185  IP: 192.*.*.*

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

class HOGE {



  private:
    struct PIYO {
        int dummy;

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

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

編集 削除
επιστημη  URL  2008-10-29 10:59:23  No: 69186  IP: 192.*.*.*

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

編集 削除
tos  2008-10-29 11:04:18  No: 69187  IP: 192.*.*.*

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

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

編集 削除