Как вы обычно помещайте строки в коде?
string str = "qaz123";
Вы можете сделать
str = str + " another string"
Который (теоретически, на практике это может быть что угодно) эквивалент
str += " another string"
Вы можете использовать
str += 'a'
потому что есть оператор, перегруженный для char type.
Вы пытаетесь сделать:
str += 'a' + 'b'
Попробуйте это приложение:
#include <typeinfo>
#include <iostream>
int main(void)
{
std::cout << typeid('a').name() << std::endl;
std::cout << typeid('a'+'b').name() << std::endl;
}
Результат будет выглядеть так:
c
i
Что означает, что 'a'+'b'
вычисляется в целое число.
Теперь возникает вопрос: какой оператор фактически вызывается, когда вы делаете str += 'a'+'b'
.
Скорее всего, оператор char
вызывается, значение char 195
.
В моей системе 195
char ├
. Что это на твоем?
Вы понимаете, что ' 'а' + 'b'' вычисляет целое число, а не к' "AB" ', не так ли? –
Что такое начальное значение 'str', которое вы делаете' str = str + 'a' + 'b'; ' –
@GrijeshChauhan: или более эффективно,' (str + = 'a') + = 'b'; '; -) –