There is no operator+ for char. The nearest match is operator+ for integers. Therefore, each char is implicitly converted into integers before the addition and the result is integer.
There is no assignment of integer into std::string either, but there is string::operator= that takes a char. Therefore, the integer is converted into char before assignment.