Как отличить объявление и использование функции?

У меня есть следующая структура в коде:

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

Я не могу понять что aaa::bbb::ccc some_name(, Если это вызов функции, зачем нам указывать его время? aaa::bbb::ccc, Если это объявление функции, почему это делается в цикле while и почему типы аргументов не указаны?

0

Решение

Вы не указываете тип возврата в вызовах функций, поэтому это не может быть вызовом функции.

Как указывает Пабби, это, скорее всего, определение объекта. Вы определяете объект с именем some_name типа aaa::bbb::ccc и передать x а также y конструктору.

3

Другие решения

В данном конкретном случае это, вероятно, создание объекта some_name типа aaa::bbb::ccc вызывая его двухпараметрический конструктор с аргументами x а также y,

Причина, по которой это делается в цикле, может заключаться в том, что объект выполняет некоторую полезную работу в своем конструкторе и / или деструкторе (это может быть, например, некоторая форма защиты области видимости).

2

Я не совсем уверен, что вы делаете, но

::

в C ++ называется scope-operator и используется для доступа namespaces, variables in namespaces или же static класс-члены.

Обычно функция-объявления и определения появляются вне функций и методов. Так что ваш код не имеет никакого смысла.

Увидеть Вот о сфере действия оператора А также Вот для объявления против определения.

0
По вопросам рекламы [email protected]