मान लीजिए मैं इस वर्ग है:सशर्त ऑपरेटर
class foo
{
public:
foo() { }
foo(const std::string& s) : _s(s) { }
private:
std::string _s;
};
कौन सा अन्य वर्ग का एक सदस्य है:
class bar
{
public:
bar(bool condition) :
_f(condition ? "go to string constructor" : **go to empty ctor**)
{
}
private:
foo _f;
};
जब _f
bar
में के सदस्य प्रारंभ सूची मैं करूंगा आरंभ condition
के आधार पर आमंत्रित करने के लिए foo
का कौन सा कन्स्ट्रक्टर चुनना पसंद है।
यह काम करने के लिए मैं go to empty ctor
के बजाय क्या रख सकता हूं? मैंने foo()
डालने का विचार किया, क्या कोई और तरीका है?
सी ++ 11 के साथ, मैं प्रतिलिपि बनाने वाले पर एक चालक-निर्माता की सिफारिश करता हूं, लेकिन तकनीक अच्छी है। – Richard
@ रिचर्ड: मैं कॉपी कन्स्ट्रक्टर के स्पष्ट उपयोग की सिफारिश नहीं कर रहा था (यह कि मेरे ज्ञान के लिए यह संभव नहीं है)। मैंने जो उदाहरण दिखाया है वह उपयुक्त होने पर एक चालक कन्स्ट्रक्टर का उपयोग करेगा। –