7
Soruyu kısa bir konu satırında çok iyi ifade etmeyi bilmiyorum, bu yüzden daha uzun bir açıklama yapmayı deneyeyim. Bunları istisna sınıfları olduğunu varsayalım:Bir dönüşüm operatörünün türüne göre bir istisna yakalayabilir misiniz?
class ExceptionTypeA : public std::runtime_error
{
// stuff
};
class ExceptionTypeB : public std::runtime_error
{
// stuff
operator ExceptionTypeA() const; // conversion operator to ExceptionTypeA
};
Sonra bunu yapabilir ve bu catch bloğu tetikler mi?
try
{
throw ExceptionTypeB();
}
catch (ExceptionTypeA& a)
{
// will this be triggered?
}
ben talihsiz olan, böyle olmaz tahmin gidiyorum, ama net veya SO üzerinde kendisine herhangi bir bilgi bulamadık çünkü ben, sormak düşündüm. Ve evet, programın derleyicimde çalıştırılabileceğini ve ne olduğunu görebildiğimin farkındayım, ama bu bana bu derleme hakkında ne diyorsa, derleyicimin uyguladığı şeyi (ve ona güvenmiyorum) söyleyemedi.
Phew. Burada rahat bir nefes. – sbi
bu üye işaretçisini kapsıyor mu? örneğin, üye verilere işaretçi kontravaryant, yani int (Base :: *) 'int (Türetilmiş :: *)' ye dönüştürülebilir. Eskiyi atarsam ikincisini yakalayabilir miyim? gcc katılmıyorum gibi görünüyor, ama standart ifadeler biraz belirsiz. – max