假设我有一堂课:
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).
我还可以创建一个对象,然后将其作为参数传递等等。
有很多解决方案,但我只是好奇是否可以使用花括号初始化来实现这个目标。