передача параметров — В чем разница между константной строкой & amp; str и string const & amp; str при передаче в качестве аргумента функции в переполнении стека

Я использую передачу по ссылке на константную строку в аргумент функции, как показано ниже:

class Super
{
void alignment(const string & str);
};

void Super::alignment(const string & str)
{
//do some stuff
}

Теперь, если я использую как показано ниже, это дает тот же результат:

void Super::alignment(string const & str)
{
//do some stuff
}

В чем разница между этими двумя типами определений в c ++?

1

Решение

const T& а также T const& семантически одно и то же точно. Как const T* а также T const* семантически одинаковы, но T const* а также T* const разные.

7

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

ключевое слово const остается ассоциативным, но в «const string &str «, так как нет левого ключевого слова для квалификации, оно применяется к слову справа от него (поэтому строка).

Это то же самое, но это не то же самое.

4

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