मुझे पता है कि डिफ़ॉल्ट कन्स्ट्रक्टर विरासत में नहीं है, जैसा कि n3337 में बताया गया है।एक उदाहरण की आवश्यकता है कि डिफ़ॉल्ट कन्स्ट्रक्टर विरासत में नहीं मिला
और वहाँ वहाँ एक उदाहरण है:
struct B2 {
B2(int = 13, int = 42);
};
struct D2 : B2 {
using B2::B2;
};
काफी अच्छा विवरण के साथ:
उम्मीदवार
B2
के लिएD2
में विरासत में मिला कंस्ट्रक्टर्स का सेट है... —B2(int = 13, int = 42) —B2(int = 13) —B2()
और सबसे महत्वपूर्ण:
D2
में मौजूद कंस्ट्रक्टर्स के सेट,
—D2()
, परोक्ष-घोषित डिफ़ॉल्ट निर्माता,
विरासत में मिला नहीं मेरे लिए इस उदाहरण अंतर नहीं दिखाती है एक अर्थ में है कि भले ही यह बहुत ही कन्स्ट्रक्टर विरासत में मिला था - इसका व्यवहार निहित रूप से घोषित डिफ़ॉल्ट कन्स्ट्रक्टर से अलग नहीं था।
मुझे एक उदाहरण की आवश्यकता है जिस तरह से आसानी से समझ में आ सकता है, कहें, सी ++ 03 से परिचित दर्शक, लेकिन सी ++ 11 सीखना चाहते हैं।
[अद्यतन]
सभी उत्तर (मेरे अपने सहित) "यदि डिफ़ॉल्ट सी टो विरासत में मिला था तो उदाहरण के संकलन होगा/ संकलन नहीं" एक तरह से कर रहे हैं।
मैं उन उत्तरों को पसंद करूंगा जहां परिणाम (अवलोकन योग्य व्यवहार) अन्यथा अलग होगा।
प्रस्तावों को देखते हुए (जैसे [N2203] (http://www.open-std.org/JTC1/SC22/WG21/docs/papers /2007/n2203.html)), इस कॉपी/कदम और डिफ़ॉल्ट ctors वारिस के औचित्य नहीं किया गया है करने के लिए (का हिस्सा लगता है?)। – dyp