Что вам нужно, это
std::string s( 1, 'a'+ 3 );
или
std::string s;
s += 'a'+ 3;
или, например,
std::string s( 1, 'a' );
s.back() += 3;
(есть несколько способов получить ожидаемый результат)
Что касается этого объявления
string s = to_string((char)('a'+ 3));
, то выражение (char) ('a' + 3) неявно преобразуется в тип int
(из-за интегральных повышений и типа аргумент выбранной перегруженной функции std :: to_string), который представляется в виде строки после вызова std :: to_string ..