クラスのオブジェクトがstd::stringとしてキャストされた場合任意の文字列を返すようにする。
ロギングなどで複数の別々のクラスをstringとして扱って統計情報などを出力したりするのに使える。
#include <iostream> #include <string> class Coordinate { private: int _x; int _y; public: Coordinate(int x, int y): _y(y), _x(x) {} explicit operator std::string () const { return "x=" + std::to_string(_x) + ", y=" + std::to_string(_y); } }; int main() { Coordinate coord(300, 400); std::cout << static_cast(coord) << std::endl; }