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基因爲我的英文不好,我在俄羅斯版計算器的嘗試,但沒有找到答案 – andybelous2
你爲什麼要這樣做?無論如何,你真的不能'A''是'A *',而不是'A',並且你不能重載'A *'''操作符B *'。 –
@VittorioRomeo我的任務是拋出一個異常,當我爲此類型轉換時。類B必須派生,類A必須是基類。沒有提到我必須使用重載,但我認爲它可以工作。 – andybelous2