2013-10-10 31 views
2

後,我碰到下面的代碼和類的方法搞糊塗了無法理解這種說法 - 返回類型的操作

class X 
{ 
    ...... 
    operator string() const {return "X"} 
    ...... 
} 

一般情況下,返回類型是在前面的方法。我將不勝感激,如果有人能解釋一下這個說法確實和細節對本聲明

+3

隱式轉換運算符。 – Rapptz

回答

3

這不是一個operator()返回寫在一個陌生的方式string(如你可能認爲),它是一個隱式轉換操作符可以用來隱蔽的X類型爲string類型:

X a; 
string B = static_cast<string>(a); 

另外,請看this question

3

一個轉換操作符是一種特殊的成員函數的一個類類型的值轉換爲其他類型的值。它通常如下所示:

operator type() const; 

其中type代表一種類型。在您的示例中,它用於將類X的值隱式轉換爲string