Cita: Alguien que me ayude, eso de crear un objeto por cada string que quiero concatenar es muy tedioso y es lo mismo si tengo que llamar una funcion cuando seria mas facil escribir solo un simbolo de mas asi como otros lenguajes lo implementan por ejemplo java o python, este ultimo hace maravillas con los operadores.
Como ya comentaste "otros lenguajes lo implementan", C++ no. En C++ no puedes sobrecargar operadores para tipos primitivos, únicamente para tipos definidos por el usuario (clases), debes tomar en cuenta que un literal de cadena en Java en realidad no es un tipo primitivo sino es tratado como un objeto String, en fin, esto ya es cuestión del nivel de abstracción que maneja cada lenguaje de programación, entre más alto más fácil de entender y manejar, pero menos control tal vez, en fin pros y contras que mencionó sam90. En caso de C++ se pudieron haber tratado las cadenas de forma en como sucede en Java y Python, pero debemos recordar que la base de C++ es C, entonces por cuestiones de eficiencia, compatibilidad y algunas otras cuestiones esto no es la opción. Utiliza la clase string de C++ y convierte en caso de ser necesario los literales de cadena en objetos string("micadena"), si quieres concatenar objetos de otros tipos tambien puedes hacerlo creando conversiones por constructor o conversiones por operador. En caso de C es todavía más trabajo tratar con cadenas (el nivel de abstracción es menor).