誰か正確に教えてくれませんか
operator std::string()
を意味する?
これは、オブジェクトを明示的または暗黙的に std::string にキャストできるようにする変換演算子です。このようなキャストが発生すると、オペレーターが呼び出され、キャストの結果が呼び出しの結果になります。
暗黙的なキャストの例として、型std::string
orを受け入れるconst std::string&
が、指定されたオブジェクト型を受け入れない関数があるとします。オブジェクトをその関数に渡すと、変換演算子が呼び出され、型の代わりに結果が関数に渡されます。
キャスト演算子です。この型を定義する任意のクラスstd::string
は、必要な場所ならどこでも使用できます。例えば、
class Foo {
public:
operator std::string() const { return "I am a foo!"; }
};
...
Foo foo;
std::cout << foo; // Will print "I am a foo!".
同じ結果を達成するためのより良い方法が常にあるため、キャスト演算子はほとんど常に悪い考えです。上記の場合、 を定義したほうがよいでしょうoperator<<(std::ostream&, const Foo&)
。