![]() |
1
7
C的一个缺点(C++继承了它(并且使它更糟))是没有特殊的语法来引入声明。这意味着声明通常看起来像可执行代码。另一个例子:
这是将a乘以a,还是声明什么?为了理解这一行,您必须知道a是类型的名称。 C++中的基本规则是,如果某事物可以被解析为一个声明,它就是。在这种情况下,它会导致一个奇怪而令人惊讶的结果。函数声明看起来很像函数调用,特别是(在a之后,可以用两种方式来考虑)。 在这个示例中,您可以使用额外的括号来绕过这个问题,这样可以消除编译器将代码解析为声明的能力。
在C中,这并不含糊,因为没有构造函数调用的函数样式,因为没有构造函数。a是类型的名称,或者是函数的名称。不能两者兼而有之。 |
![]() |
2
7
它是根据C++标准82/1的局部函数声明。可以使用隐式的构造函数形式来避免这种情况或以下情况:
C++标准82/1:
|
![]() |
3
5
等于
-参数名周围的括号是可选的-相当于
-参数名称在函数声明中是可选的。因此,它是一个函数声明。 通常你会碰到它
-不是预期的默认构造函数,但在一路使用临时构造函数时,会出现更复杂的情况,例如
|
![]() |
tomm · 谷歌表格-将两列相乘,复制第三列 3 年前 |
![]() |
ziemsterr · 无法在SQL SELECT语句中找出此语法错误 3 年前 |
![]() |
Andrés BolÃvar · AJAX请求未收到我想要的属性 3 年前 |
![]() |
clarkk · 当声明向量时,(1)是什么意思? 3 年前 |
![]() |
Mike C. · Bash错误[:检查文件是否存在时缺少“]” 3 年前 |
![]() |
michael · 错误的脚本和语法问题 3 年前 |