Я использую передачу по ссылке на константную строку в аргумент функции, как показано ниже:
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 ++?
const T&
а также T const&
семантически одно и то же точно. Как const T*
а также T const*
семантически одинаковы, но T const*
а также T* const
разные.
ключевое слово const остается ассоциативным, но в «const string &str «, так как нет левого ключевого слова для квалификации, оно применяется к слову справа от него (поэтому строка).
Это то же самое, но это не то же самое.