可以說我有一類重載返回類型?
Class rofl {
int a;
float b;
rofl::rofl(int a, float b) {
this->a = a; this->b = b;
}
}
是有可能做
rofl* sup = new rofl(5, 2.0f);
float hello = sup;
使可變你好會得到sup.b的價值?
可以說我有一類重載返回類型?
Class rofl {
int a;
float b;
rofl::rofl(int a, float b) {
this->a = a; this->b = b;
}
}
是有可能做
rofl* sup = new rofl(5, 2.0f);
float hello = sup;
使可變你好會得到sup.b的價值?
是的,你可以重載類型轉換操作符:
class Rofl {
public:
operator float() const { return b; }
...
};
的演示中看到http://ideone.com/Y7UwV。
然而,請參閱Scott Meyers的More Effective C++的標題爲「」的第5項,以警惕用戶定義的轉換操作。允許來回複雜的類型隱式轉換通常會導致各種微妙的錯字錯誤。
你也可以去周圍的其他方法:
class rofl {
public:
float operator=(float f) { b = f; return f; }
...
};
rofl sup(5, 2.0f);
sup = 4.0f;
不,你說這是不可能的情況。在您的代碼中,sup
不是rofl
,而是rofl*
,並且創建rofl*
到float
轉換是不允許的。此外,你的問題是不健全的:sup.b
不涉及任何事情。
也就是說,您可能不需要動態分配實例,在這種情況下,其他答案是正確的。
這不會編譯。 'Class'關鍵字不應該以大寫字母開頭,'rofl ::'限定是不必要的......我非常想要低調。 –