7
問題很簡單,但我找不到解決方案。執行指針轉換操作符
class foo
{
public:
operator int()
{
return 5;
}
};
foo* a = new foo();
int b = a;
是否有可能實現該行爲?
問題很簡單,但我找不到解決方案。執行指針轉換操作符
class foo
{
public:
operator int()
{
return 5;
}
};
foo* a = new foo();
int b = a;
是否有可能實現該行爲?
你不能。轉換運算符需要是類的成員,但foo*
不是用戶定義的類類型,它是一個指針類型(此外,int b = *a
可以工作)。
您可以做的最好的事情就是使用一個實用工具來執行投射。
可以,通過顯式調用操作:
foo* a = new foo();
int b = a->operator int();