标题可能没有多大意义,所以我将从一些代码开始:
class Foo : public std::vector<Foo>
{
};
...
Foo f;
f.push_back( Foo() );
为什么编译器允许这样做?在这个阶段我的大脑正在融化,所以任何人都可以解释你是否有任何理由想要这样做?不幸的是,我刚刚在一些生产 C# 代码中看到了类似的模式,并想知道为什么有人会使用这种模式。
标题可能没有多大意义,所以我将从一些代码开始:
class Foo : public std::vector<Foo>
{
};
...
Foo f;
f.push_back( Foo() );
为什么编译器允许这样做?在这个阶段我的大脑正在融化,所以任何人都可以解释你是否有任何理由想要这样做?不幸的是,我刚刚在一些生产 C# 代码中看到了类似的模式,并想知道为什么有人会使用这种模式。