استخدام قالب الملف المتقاطع والاستخدام
-
26-09-2019 - |
سؤال
لديّ فصل دراسي به العديد من وظائف أعضاء القالب التي أود توزيعها بين عدة ملفات مصدر لتسريع أوقات التجميع. (القوالب هي تفاصيل التنفيذ ولا تهدف إلى استخدامها خارج الفصل ، وبالتالي تعريفها في المصادر وليس الرؤوس.)
كيف يمكنني تقسيم هذه القوالب بطريقة لن أحصل على أخطاء في الارتباط؟ إذا كان لدي ملف مصدر A باستخدام قالب محدد في الملف المصدر B ، كيف يمكنني التأكد من أن المثيل المناسب للقالب تم إنشاؤه بواسطة المترجم؟
المحلول
لم أستطع الإجابة عليه بشكل أفضل من الأسئلة الشائعة حول C ++:
https://isocpp.org/wiki/faq/templates#templates-defn-vs-decl
نصائح أخرى
ببساطة لا تعلن عن عناصر القالب كجزء من الفصل في ملف الرأس. ثم ، حدد القوالب الخاصة بك فقط في الملف المصدر. علي سبيل المثال:
myclass.hpp
class MyClass
{
public:
void SomePublicMethod() const;
};
myclass.cpp
template<class T>
void SomethingWithT(T myVal)
{
// ...
}
void MyClass::SomePublicMethod() const
{
SomethingWithT(42);
}
لا تنتمي إلى StackOverflow