为什么我可以从 C# / C++ 中基于该类型的模板/通用类派生?
标题可能没有多大意义,所以我将从一些代码开始:
class Foo : public std::vector<Foo>
{
};
...
Foo f;
f.push_back( Foo() );
为什么编译器允许这样做?我的大脑在这个阶段正在融化,所以有人能解释一下你是否有任何理由想要这样做吗?不幸的是,我刚刚在一些生产 C# 代码中看到了类似的模式,并且想知道为什么有人会使用这种模式。
Title probably doesn't make a lot of sense, so I'll start with some code:
class Foo : public std::vector<Foo>
{
};
...
Foo f;
f.push_back( Foo() );
Why is this allowed by the compiler? My brain is melting at this stage, so can anyone explain whether there are any reasons you would want to do this? Unfortunately I've just seen a similar pattern in some production C# code and wondered why anyone would use this pattern.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
奇怪的重复模板模式。
Curiously recurring template pattern.