0
私はそのような型キャストを行うと例外をスローする必要があります:(B*)a
ここで、aは基本クラスAのオブジェクトへのポインタであり、Bは派生クラスです。型キャストオーバーロード
class A
{
protected:
int a;
public:
operator B*()
{
throw(1);
}
};
class B: public A
{
protected:
int b;
};
void main()
{
A *a;
(B*)a;
}
オーバーロードが試行されますが、Aへのポインターでは機能しません。オブジェクトで動作します。どのように私の基本クラスへのポインタで動作するようにこの操作をオーバーロードするには?
私の下手な英語のためのSRYは、私はstackoverflowのロシア語版で試してみましたしかし、あなたは答えをfoudにしないでください – andybelous2
なぜこれをしたいですか?それにもかかわらず、実際には 'A'は' A'ではなく 'A'でなく、' A * 'の'演算子B * 'をオーバーロードすることはできません。 –
@VittorioRomeo私はこのために型キャストを行うときに例外をスローすることです。クラスBは派生しなければならず、クラスAは基本クラスでなければなりません。オーバーロードを使用する必要があるとは言いませんでしたが、作業。 – andybelous2