c# - 为什么我可以从基于 C#/C++ 中该类型的模板化/泛型类派生

标签 c# c++ generics templates derived-class

标题可能没有多大意义,所以我将从一些代码开始:

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

...

Foo f;

f.push_back( Foo() );

为什么编译器允许这样做?在这个阶段我的大脑正在融化,所以谁能解释一下你是否有任何理由想要这样做?不幸的是,我刚刚在一些生产 C# 代码中看到了类似的模式,并且想知道为什么有人会使用这种模式。

最佳答案

can anyone explain whether there are any reasons you would want to do this?

Curiously recurring template pattern .

关于c# - 为什么我可以从基于 C#/C++ 中该类型的模板化/泛型类派生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689642/

相关文章:

c# - 如何在 FFMPEG 中设置所有视频的纵横比?

C++组织实用程序代码,避免 "multiple definition of .."

c# - 如何使用泛型将参数传递给非泛型方法?

c# - 将字符串转换为十进制? (可为空的十进制)通过扩展方法

c++ - 如何将模板内部的模板作为模板模板参数传递给另一个模板?

generics - 将通用结构视为特征对象

c# - ASP.NET MVC AuthorizeAttribute 将值传递给 Action 方法?

c# - Visual Studio 中 Goto 定义和 Goto 实现的区别

c# - Configuration.GetSection ("SectionName") 在使用手动添加的 settings.json 文件到 dotnet 核心控制台应用程序时始终为 null

c++ - 用不同的值初始化 vector