作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 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;
}();
最佳答案
正确答案是 R_Sahu 的,但如果您真的想要那种语法并且感到自毁...
struct _ : public DealSchedule { _() {
site_ = site;
deal_id_ = deal_id;
payment_date_ = payment_date;
ccy1_ = ccy1;
ccy2_ = ccy2;
}} trf_schedule;
这使用内联结构进行初始化,然后您可以将其切回 DealSchedule
。
(实际上不要这样做)
关于c++ - 有没有办法初始化大括号中的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44320108/
我是一名优秀的程序员,十分优秀!