假設,如果從一種類型的另一種類型的轉換是無法通過顯式轉換e.g static_cast
,就可以定義明確的轉換運營商呢?定義自己的顯式轉換
編輯:
我正在尋找一種方法來定義顯式轉換操作符爲以下幾點:
class SmallInt {
public:
// The Default Constructor
SmallInt(int i = 0): val(i) {
if (i < 0 || i > 255)
throw std::out_of_range("Bad SmallInt initializer");
}
// Conversion Operator
operator int() const {
return val;
}
private:
std::size_t val;
};
int main()
{
SmallInt si(100);
int i = si; // here, I want an explicit conversion.
}
顯式轉換運算符就是返回目標類型的方法。或者我錯過了什麼? –