在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'。”
答案 0 :(得分:0)
初始化必须是表达式。 Derived cd(7)
是一个声明,而不是表达。 Derived(7)
是一个表达式,因此可以在那里使用。
如果要在一个声明语句中声明两个变量,则语法为
Derived cd(7), cc = cd;
每个都有一个单独的声明者。