在定义函数时,指针或引用变量没有给定名称
Pointer or reference variables are not given a name when defining function
我有一个像这样的代码
int def_function(typeA *, double &) {}
请您解释一下这些变量的含义,为什么它们有类型但没有名称?
方法签名说有一个函数名def_function
,它有两个类型为'pointer of typeA '
和'reference of double'
的参数。参数变量的名称是可选的,但如果在函数定义中没有名称,则不能引用或使用任何这些变量。所以如果你在你的函数中不使用这些变量,你可以省略参数名,否则它是必需的。
int def_function(typeA *, double &)
在这个函数中,没有使用任何参数。这样就不需要给它们命名了
这些变量的含义是:
-
typeA *
指向typeA
类型对象的指针 -
double &
对double
类型对象的引用。这意味着,"double"将通过其非const引用传递,也就是说,它可以被更改。
c++ 14标准第8.3.5.11节规定:
标识符可以作为参数名提供;如果它出现在函数定义(8.4)中,为参数命名(有时称为"形式论证")。注意:特别是参数在函数定义中,名称也是可选的参数在不同的声明和函数的定义不必相同
记住这在C中是不同的。在C中,必须给formal一个名字。参数。
C99标准规定:
[6.9.1.5]如果声明符包含形参类型列表,则每个参数的声明应该包括一个标识符,除了由单个参数组成的参数列表的特殊情况类型为void的,在这种情况下,不能有标识符。
- 你必须在函数定义和使用这些变量时命名函数参数。
- 如果稍后定义,则不必在函数声明时命名参数。
- 你不必为你不使用的参数命名。
相关文章:
- 将全局变量的名称作为输入并更改其值的函数
- 获取变量类型名称
- 如果地址已知,如何获取指针变量的名称
- 如何在 c++ 的函数中输入变量的名称并使用该变量
- 如何打印带有参数的变量的名称
- C++-在不知道变量的名称的情况下使用变量
- 在C++中将变量的名称转换为字符串?
- 隐式查找模板变量打字名称
- 将 txt 文件另存为变量的名称
- 通用地打印一系列变量及其名称
- C++中的变量矩阵名称
- C++ - 带有字符变量的名称/访问类
- 将变量的名称传递给 C++ 中的函数
- 静态成员函数中静态变量的名称相同
- 在 c++ 中隐藏 int 变量的名称
- 堆栈/堆变量的变量/引用名称或类型存储在内存中的位置
- 如何在内存中找到变量的名称大小(C++)?
- 用户输入预定义变量(按名称/字符)
- 我们可以在C++中删除一个变量的名称吗
- 在C++中使用变量的值作为下一个变量的名称