使用好友有可能嗎?是否可以使用朋友函數將類型轉換爲基本類型?
class MyClass
{
private:
int myInteger;
float myFloat;
public:
void SetData(int a, float b)
{
myInteger = a;
myFloat = b;
}
operator int();
friend operator float(MyClass &);
};
MyClass :: operator int()
{
return myInteger;
}
operator float(MyClass & obj)
{
return obj.myFloat;
}
此代碼不能編譯。如何以正確的方式做到這一點?
你試過了嗎?如果是這樣,結果如何? –
有趣的是,http://en.cppreference.com/w/cpp/language/operators的彙總表沒有列出這種情況。我知道有幾個人更喜歡cppreference.com來cplusplus.com,但我很驚訝地發現它在這裏不足。 –
我認爲一個轉換函數需要是一個成員函數,請參見[class.conv.fct]和http://stackoverflow.com/q/2999506/420683 – dyp