[英]operator std::string() const?
有人能告訴我具體是什么嗎
operator std::string()
代表?
它是一個轉換運算符,允許將對象顯式或隱式轉換為 std::string。 當這樣的轉換發生時,操作符被調用,轉換的結果就是調用的結果。
作為隱式轉換的示例,假設您有一個函數接受類型std::string
或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&)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.