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();
を