لماذا يمكنني اشتقاق من فئة templated / عامة بناءً على هذا النوع في C# / C ++

StackOverflow https://stackoverflow.com/questions/2689642

سؤال

ربما لا يكون العنوان منطقيًا كثيرًا ، لذلك سأبدأ ببعض التعليمات البرمجية:

class Foo : public std::vector<Foo>
{
};

...

Foo f;

f.push_back( Foo() );

لماذا يسمح هذا من قبل المترجم؟ عقلي يذوب في هذه المرحلة ، فهل يمكن لأي شخص أن يشرح ما إذا كانت هناك أي أسباب تريد القيام بذلك؟ لسوء الحظ ، لقد رأيت للتو نمطًا مشابهًا في بعض كود الإنتاج C# وتساءلت عن سبب استخدام أي شخص هذا النمط.

هل كانت مفيدة؟

المحلول

هل يمكن لأي شخص أن يشرح ما إذا كانت هناك أي أسباب تريد القيام بذلك؟

نمط القالب المتكرر الغريب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top