为什么我可以从 C# / C++ 中基于该类型的模板/通用类派生?

发布于 2024-08-29 15:39:25 字数 245 浏览 8 评论 0原文

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

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡笑忘祈一世凡恋 2024-09-05 15:39:25

谁能解释一下您是否有任何理由想要这样做?

奇怪的重复模板模式

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

Curiously recurring template pattern.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文