我有一个类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