簡體   English   中英

運算符 std::string() 常量?

[英]operator std::string() const?

有人能告訴我具體是什么嗎

operator std::string()

代表?

它是一個轉換運算符,允許將對象顯式或隱式轉換為 std::string。 當這樣的轉換發生時,操作符被調用,轉換的結果就是調用的結果。

作為隱式轉換的示例,假設您有一個函數接受類型std::stringconst 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM