匿名变量对象与r值的真实对象

时间:2015-03-09 17:56:50

标签: c++ object constructor anonymous

在C ++中,所有这些声明具有初始值的变量的方法都有效(给定一些可以使用T初始化的7类型):

T a = T(7);

T b(7);

T c(7);
T d = c;

但这不是:

// error: expected primary-expression before 'cd'
T f = T e(7);

为什么最后不允许这样做? (我希望它能宣布“' e' f'。”

1 个答案:

答案 0 :(得分:0)

初始化必须是表达式。 Derived cd(7)是一个声明,而不是表达。 Derived(7)是一个表达式,因此可以在那里使用。

如果要在一个声明语句中声明两个变量,则语法为

Derived cd(7), cc = cd;

每个都有一个单独的声明者。