طريقة القالب الافتراضي C
في لغة C، قد يكون من الصعب الجمع بين تعدد أشكال الوقت الثابت (القوالب) وتعدد أشكال وقت التشغيل. يتضح هذا في الفئة المجردة التالية:class AbstractComputation {
public:
template virtual void setData(std::string id, T data);
template virtual T getData(std::string id);
};
يهدف هذا الفصل إلى تعيين واسترجاع البيانات من نوع محدد بناءً على معرف فريد. ومع ذلك، تنشأ مشكلة عند محاولة استدعاء وظيفة setData العامة بنوع معين، مثل setData
إزالة تعدد الأشكال الثابت:
class AbstractComputation {
public:
template
void setData( std::string const & id, T value ) {
m_store.setData( id, value );
}
template
T getData( std::string const & id ) const {
return m_store.getData( id );
}
protected:
ValueStore m_store;
};
إزالة تعدد الأشكال الديناميكي:
الاحتفاظ بتعدد الأشكال في وقت التشغيل مع التخلص من تعدد الأشكال الثابت عن طريق محو النوع:تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3