如何区分函数的声明和使用
How to distinguishe declaration and use of a function?
我在代码中有以下结构:
while (x > 0) {
something;
aaa::bbb::ccc some_name(
x,
y
);
}
我不能理解什么是aaa::bbb::ccc some_name(
。如果它是一个函数调用,为什么我们需要指定它的时间aaa::bbb::ccc
。如果它是一个函数的声明,为什么它是在while循环中完成的,为什么参数的类型没有指定?
你没有在函数调用中指定返回类型,所以这不可能是一个函数调用。
正如Pubby指出的,这很可能是一个对象定义。您定义了一个类型为aaa::bbb::ccc
的对象some_name
,并将x
和y
传递给构造函数。
在本例中,它可能通过调用带有参数x
和y
的双形参构造函数来构造类型为aaa::bbb::ccc
的对象some_name
。
在循环中这样做的原因可能是对象在其构造函数和/或析构函数中做了一些有用的工作(例如,它可以是某种形式的作用域保护)。
我不太清楚你在做什么,但是
::
在c++中称为scope-operator
,用于访问namespaces
、variables in namespaces
或static
类成员。
通常function-声明和定义出现在函数和方法之外。所以你的代码没有任何意义。
查看这里的作用域操作符。这里是声明vs定义
相关文章:
- .cpp和.h文件中的模板专用化声明
- 未在作用域中声明unordered_map
- C++避免重复声明的语法是什么
- 如何确保C++函数在定义之前声明(如override关键字)
- 错误:未在此范围内声明'reverse'
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 为什么在定义函数之前先声明它
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- #ifdef和未声明的标识符
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 没有显式声明的int[]中的foreach
- 在基于范围的for循环中使用结构化绑定声明
- 在C++中声明可见性/访问权限的方法有何不同
- 使用auto声明变量和使用类型名称之间的区别是什么
- 以下声明之间的区别是什么
- clang与gcc在查找声明方面有何不同
- 隐式声明和隐式定义的复制构造函数之间的区别是什么
- 如何区分类成员函数的声明和数据成员的声明
- c++内部静态声明和动态声明的区别是什么?
- 如何区分子模板类的定义和声明