0

在使用类内初始化器时,为什么我可以使用初始化'='的复制形式和初始化'{}'的大括号列表形式,但不能使用直接形式'()'。

class foo{
    int a = 5;
    int b{5};
    int c(5);
};

错误:需要类型说明符

错误:语法错误:'常量'

4

1 回答 1

0

我想这不会被解析为变量,但它会被解析为函数的声明。这就是为什么它不允许你在那里写 5 。因为它期望那里没有参数或正常或默认类型的参数。并且由于错误还表明它需要一个指定的类型,如 int 或 5 的任何内容。另一个错误表明您不能在函数中直接传递常量。这是一个语法错误。

于 2016-05-15T16:24:41.210 回答