假设我们有以下两个类:
class Temp{
public:
char a;
char b;
};
class Final{
private:
int a;
char b;
char c;
public:
Final(Temp in):b(in.a),c(in.b){}
//rest of implementation
};
我们可以在即将到来的c ++ 0x标准中使用以下语法初始化Final类的对象:
Final obj(Temp{'a','b'});
答案 0 :(得分:2)
C ++ 0x为所有类型添加使用大括号({})的POD-struct和数组类型的统一初始化以及特殊的初始化列表,以支持其中的可变数量的元素/参数,就像数组一样。所以你的例子可以写成:
Final obj = { { 'a', 'b' } };
或
Final obj { { 'a','a' } };