overload operator cppreference c++ operator-keyword

cppreference - operator[] c++



operador std:: string() const? (2)

Es un operador de conversión que permite que el objeto se convierta explícita o implícitamente en std :: string. Cuando se produce una conversión de este tipo, se invoca al operador y el resultado de la conversión es el resultado de la invocación.

Como ejemplo de una conversión implícita, suponga que tiene una función que acepta el tipo std::string o const std::string& , pero no el tipo de objeto dado. Pasar su objeto a esa función resultaría en la invocación del operador de conversión, con el resultado pasado a la función en lugar de su tipo.

¿Alguien puede decirme qué precisamente?

operator std::string()

¿representa?


Es un operador de reparto. Cualquier clase que defina este tipo puede usarse en cualquier lugar donde se requiera una std::string . Por ejemplo,

class Foo { public: operator std::string() const { return "I am a foo!"; } }; ... Foo foo; std::cout << foo; // Will print "I am a foo!".

Los operadores de cast son casi siempre una mala idea, ya que invariablemente hay una mejor manera de lograr el mismo resultado. En el caso anterior, es mejor que defina el operator<<(std::ostream&, const Foo&) .