如何区分声明和使用功能?

时间:2013-03-12 08:45:56

标签: c++ syntax function-calls function-declaration

我在代码中有以下结构:

while (x > 0) {
     something;
     aaa::bbb::ccc some_name(
        x,
        y
     );
}

我无法理解aaa::bbb::ccc some_name(是什么。如果是函数调用,为什么我们需要指定它的时间aaa::bbb::ccc。如果它是一个函数的声明,为什么它在while循环中完成,为什么没有指定参数的类型?

3 个答案:

答案 0 :(得分:3)

您没有在函数调用中指定返回类型,因此这不可能是函数调用。

正如Pubby所指出的,它很可能是一个对象定义。您定义名为some_name的{​​{1}}类型的对象,并将aaa::bbb::cccx传递给构造函数。

答案 1 :(得分:2)

在这种特殊情况下,它可能通过调用带有参数some_nameaaa::bbb::ccc的双参数构造函数来构造类型为x的对象y

它在循环中完成的原因可能是对象在其构造函数和/或析构函数中做了一些有用的工作(它可能是某种形式的范围保护)。

答案 2 :(得分:0)

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

::
C ++中的

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

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

有关范围运营商的信息,请参阅here。并且here用于声明与定义。