У меня есть следующая структура в коде:
while (x > 0) {
something;
aaa::bbb::ccc some_name(
x,
y
);
}
Я не могу понять что aaa::bbb::ccc some_name(
, Если это вызов функции, зачем нам указывать его время? aaa::bbb::ccc
, Если это объявление функции, почему это делается в цикле while и почему типы аргументов не указаны?
Вы не указываете тип возврата в вызовах функций, поэтому это не может быть вызовом функции.
Как указывает Пабби, это, скорее всего, определение объекта. Вы определяете объект с именем some_name
типа aaa::bbb::ccc
и передать x
а также y
конструктору.
В данном конкретном случае это, вероятно, создание объекта some_name
типа aaa::bbb::ccc
вызывая его двухпараметрический конструктор с аргументами x
а также y
,
Причина, по которой это делается в цикле, может заключаться в том, что объект выполняет некоторую полезную работу в своем конструкторе и / или деструкторе (это может быть, например, некоторая форма защиты области видимости).
Я не совсем уверен, что вы делаете, но
::
в C ++ называется scope-operator
и используется для доступа namespaces
, variables in namespaces
или же static
класс-члены.
Обычно функция-объявления и определения появляются вне функций и методов. Так что ваш код не имеет никакого смысла.
Увидеть Вот о сфере действия оператора А также Вот для объявления против определения.