मुझे नहीं पता कि प्रश्न को लघु विषय पंक्ति में बहुत अच्छी तरह से कैसे वाक्यांशित किया जाए, इसलिए मुझे लंबी व्याख्या करने दें। मान लीजिए मैं इन अपवाद श्रेणियां होती हैं:क्या आप एक रूपांतरण ऑपरेटर के प्रकार से अपवाद प्राप्त कर सकते हैं?
class ExceptionTypeA : public std::runtime_error
{
// stuff
};
class ExceptionTypeB : public std::runtime_error
{
// stuff
operator ExceptionTypeA() const; // conversion operator to ExceptionTypeA
};
मैं तो यह कर सकता है, और यह कैच ब्लॉक को गति प्रदान की है?
try
{
throw ExceptionTypeB();
}
catch (ExceptionTypeA& a)
{
// will this be triggered?
}
मुझे लगता है कि ऐसा नहीं होगा लगता है, जो दुर्भाग्यपूर्ण है जा रहा हूँ, लेकिन मैंने सोचा कि मैं, पूछना चाहता हूँ के बाद से मैं नेट पर या इतने पर इस पर कोई जानकारी नहीं मिल सकी। और हाँ, मुझे एहसास है कि मैं सिर्फ अपने कंपाइलर में प्रोग्राम चला सकता हूं और देख सकता हूं कि क्या होता है, लेकिन यह मुझे नहीं बताएगा कि इस व्यवहार के बारे में मानक क्या कहता है, बस मेरा संकलक लागू करता है (और मुझे विश्वास नहीं है)।
पुhew। यहाँ राहत का आह्वान। – sbi
इस कवर सूचक को सदस्यों के लिए करता है? उदाहरण के लिए, सदस्य डेटा के सूचक को contravariant हैं, इसलिए 'int (base :: *)' को 'int (व्युत्पन्न :: *) 'में परिवर्तित किया जा सकता है। क्या मैं पूर्व को फेंक सकता हूं अगर मैं पूर्व को फेंक दूं? जीसीसी असहमत प्रतीत होता है, लेकिन मानक शब्द थोड़ा अस्पष्ट है। – max