मुझे बेस क्लास के shared_ptr
का उपयोग करने में कोई समस्या है, मैं इसे संदर्भित करते समय व्युत्पन्न क्लास के तरीकों को कॉल करने में सक्षम नहीं प्रतीत होता। मेरा मानना है कि कोड मुझसे अधिक वर्बोज़ हो जाएगा:boost :: shared_ptr और गतिशील कास्ट
class Base : public boost::enable_shared_from_this<Base>
{
public:
typedef boost::shared_ptr<BabelNet> pointer;
};
class Derived : public Base
{
public:
static pointer create()
{
return pointer(new Derived);
}
void anyMethod()
{
Base::pointer foo = Derived::create();
// I can't call any method of Derived with foo
// How can I manage to do this ?
// is dynamic_cast a valid answer ?
foo->derivedMethod(); // -> compilation fail
}
};
अगर आपकी उदाहरण संकलित करने योग्य थी, तो यह आपकी मदद करेगा, निश्चित रूप से अपमानजनक लाइन टिप्पणी के साथ। –