我有一個類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支撐在lambda捕獲重命名):
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