私は、定義された一部のメンバーを持つクラスDealScheduleを持っている今、私はのようなもので、それを初期化する必要があります。メンバーを中括弧で初期化する方法はありますか?
DealSchedule trf_schedule;
trf_schedule.site_ = site;
trf_schedule.deal_id_ = deal_id;
trf_schedule.payment_date_ = payment_date;
trf_schedule.ccy1_ = ccy1;
trf_schedule.ccy2_ = ccy2;
が、これは初期設定の変更を保護する
DealSchedule trf_schedule
{
site_ = site;
deal_id_ = deal_id;
payment_date_ = payment_date;
ccy1_ = ccy1;
ccy2_ = ccy2;
};
としてうまく書くことが可能です。
私はこのような何か(ラムダキャプチャにリネーム支援が必要C++ 14)で出てくることができます。
DealSchedule trf_schedule;
[&_=trf_schedule]()
{
_.site_ = site;
_.deal_id_ = deal_id;
_.payment_date_ = payment_date;
_.ccy1_ = ccy1;
_.ccy2_ = ccy2;
}();
あなたが唯一の理由は、それコンストラクタの一部にしないで、初期化するために、5人を持っていますか?だから、 'trf_schedule = {site、deal_id、payment_date、ccy1、ccy2};' – Fireboyd78
のように、メンバリストが増えるにつれてコンストラクタの更新を避けるようにすることができます。 @ Fireboyd78 – athos
ああ、そうだ。残念なことに、C++でやりたいことを実際に行う方法はなく、コンストラクタのオーバーロードを使うのが最善の方法です。 – Fireboyd78