سؤال

لديّ فصل دراسي به العديد من وظائف أعضاء القالب التي أود توزيعها بين عدة ملفات مصدر لتسريع أوقات التجميع. (القوالب هي تفاصيل التنفيذ ولا تهدف إلى استخدامها خارج الفصل ، وبالتالي تعريفها في المصادر وليس الرؤوس.)

كيف يمكنني تقسيم هذه القوالب بطريقة لن أحصل على أخطاء في الارتباط؟ إذا كان لدي ملف مصدر 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);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top