Может ли функция length () принимать аргументы? - PullRequest
0 голосов
/ 12 октября 2019

Я экспериментировал с функцией string length(), чтобы посмотреть, какие параметры она может принимать, и я получаю следующую ошибку: Q8.cxx: 88: 17: error: слишком много аргументов для вызова функции, ожидается 0, есть 1

Означает ли это, что эта функция никогда не может принимать аргументы? Мне любопытно, потому что у него есть скобки, (). Я хочу знать, есть ли в c ++ некоторые функции, которые никогда не принимают аргументов, но у них все еще есть скобки.

Ответы [ 3 ]

3 голосов
/ 12 октября 2019

Скобки (скобки) обозначают вызов функции . Вызовы функций всегда имеют круглые скобки. length() вызывает функцию с именем length и не передает аргументов.

2 голосов
/ 12 октября 2019

"Может ли функция length () принимать аргументы?"- Нет.

Если вы посмотрите , вы увидите, что std::string::length() принимает без аргументов . Поэтому, конечно, вы не можете вызывать его с любым.

Скобки () просто означают «вызов функции». Любые аргументы идут в скобках. Пустые скобки означают «вызвать функцию без аргументов».

Имя функции без в скобках означает что-то совершенно другое. Это означает «указатель на функцию», не функция вызов .

2 голосов
/ 12 октября 2019

Синтаксис языка определяет, что любая функция может вызываться с помощью скобок (), независимо от того, ожидается ли получение каких-либо аргументов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...