如何区分函数的声明和使用

How to distinguishe declaration and use of a function?

本文关键字:声明 何区 函数      更新时间:2023-10-16

我在代码中有以下结构:

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,并将xy传递给构造函数。

在本例中,它可能通过调用带有参数xy的双形参构造函数来构造类型为aaa::bbb::ccc的对象some_name

在循环中这样做的原因可能是对象在其构造函数和/或析构函数中做了一些有用的工作(例如,它可以是某种形式的作用域保护)。

我不太清楚你在做什么,但是

::

在c++中称为scope-operator,用于访问namespacesvariables in namespacesstatic类成员。

通常function-声明和定义出现在函数和方法之外。所以你的代码没有任何意义。

查看这里的作用域操作符。这里是声明vs定义