後,我碰到下面的代碼和類的方法搞糊塗了無法理解這種說法 - 返回類型的操作
class X
{
......
operator string() const {return "X"}
......
}
一般情況下,返回類型是在前面的方法。我將不勝感激,如果有人能解釋一下這個說法確實和細節對本聲明
後,我碰到下面的代碼和類的方法搞糊塗了無法理解這種說法 - 返回類型的操作
class X
{
......
operator string() const {return "X"}
......
}
一般情況下,返回類型是在前面的方法。我將不勝感激,如果有人能解釋一下這個說法確實和細節對本聲明
這不是一個operator()
返回寫在一個陌生的方式string
(如你可能認爲),它是一個隱式轉換操作符可以用來隱蔽的X
類型爲string
類型:
X a;
string B = static_cast<string>(a);
另外,請看this question。
一個轉換操作符是一種特殊的成員函數的一個類類型的值轉換爲其他類型的值。它通常如下所示:
operator type() const;
其中type
代表一種類型。在您的示例中,它用於將類X
的值隱式轉換爲string
。
隱式轉換運算符。 – Rapptz