0

我在代码中有以下结构:

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

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

4

3 回答 3

3

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

正如 Pubby 所指出的,它很可能是一个对象定义。您定义了一个名为some_nametype的对象并将其aaa::bbb::ccc传递给构造函数。xy

于 2013-03-12T08:48:12.040 回答
2

在这种特殊情况下,它可能通过使用参数和调用其双参数构造函数来构造一个some_name类型的对象。aaa::bbb::cccxy

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

于 2013-03-12T08:53:06.490 回答
0

我不太确定你在做什么,但是

::

在 C++ 中称为scope-operatorand 用于访问namespacesvariables in namespacesstatic成员。

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

有关范围运算符,请参见此处。这里是声明与定义

于 2013-03-12T08:53:00.733 回答