假设我有一个类:
class Aggregate {
public:
int x;
int y;
};
我知道如何使用花括号初始化一个对象:
Aggregate a1 = { 1500, 2900 };
但是我找不到创建临时对象并将其作为参数传递给某个方法的正确语法,例如:
void frobnicate(const Aggregate& arg) {
// do something
}
//...
frobnicate(Aggregate {1500, 2900}); // what should this line look like?
最简单的方法是将构造函数添加到Aggregate类中,但假设我无法访问Aggregate头文件。另一个想法是编写某种工厂方法,即
Aggregate makeAggregate(int x, int y).
我也可以创建一个对象,然后将其作为参数传递等等。
有许多解决方案,但我只是好奇是否可以使用花括号初始化来实现这个目标。