Bo to są INT-y, a ich nie da się dodać do stringów... Ile miałoby się równać 8+"piw" ?
Możesz:
a) Użyć
sprintf-a, ale to brzydkie i nieC++owe.
b) Użyć strumienia łańcuchów
std::stringstream:
#include <sstream>
#include <iostream>
[...]
/* Pusty stringbuffer */
std::stringstream date_final;
[...]
/* Pakujemy do niego dane. Obowiązują takie same zasady jak przy std::cout */
date_final << day << "-" << mount << "-" << year;
/* Metoda .str() wyciąga z niego wszystkie dane naraz jako std::string */
std::cout << date_final.str() << std::endl;
PS.
mount to góra albo wspinać się. Miesiąc to
month.