私は次のコードに出くわし、クラスのメソッドが私を混乱させました
class X
{
......
operator string () const {return "X"}
......
}
通常、戻り値の型はメソッドの前にあります。誰かがこの声明の意味とこの声明の詳細を説明してくれれば幸いです
変換演算子は、クラス型の値を他の型の値に変換する特別な種類のメンバー関数です。通常は次のようになります。
operator type() const;
はtype
型を表します。あなたの例では、クラスの値を暗黙的にに変換するために使用されてX
いstring
ます。
これは奇妙な方法で書かれたoperator()
を返す ではありません (おそらくご想像のとおり)。これは、型を型にstring
変換するために使用できる暗黙の変換演算子です。X
string
X a;
string B = static_cast<string>(a);
また、こちらの質問もご覧ください。