لماذا يمكنني اشتقاق من فئة templated / عامة بناءً على هذا النوع في C# / C ++
-
01-10-2019 - |
سؤال
ربما لا يكون العنوان منطقيًا كثيرًا ، لذلك سأبدأ ببعض التعليمات البرمجية:
class Foo : public std::vector<Foo>
{
};
...
Foo f;
f.push_back( Foo() );
لماذا يسمح هذا من قبل المترجم؟ عقلي يذوب في هذه المرحلة ، فهل يمكن لأي شخص أن يشرح ما إذا كانت هناك أي أسباب تريد القيام بذلك؟ لسوء الحظ ، لقد رأيت للتو نمطًا مشابهًا في بعض كود الإنتاج C# وتساءلت عن سبب استخدام أي شخص هذا النمط.
المحلول
هل يمكن لأي شخص أن يشرح ما إذا كانت هناك أي أسباب تريد القيام بذلك؟
لا تنتمي إلى StackOverflow