代码之家  ›  专栏  ›  技术社区  ›  stusmith

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

  •  0
  • stusmith  · 技术社区  · 14 年前

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

    class Foo : public std::vector<Foo>
    {
    };
    
    ...
    
    Foo f;
    
    f.push_back( Foo() );
    

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

    1 回复  |  直到 14 年前
        1
  •  4
  •   kennytm    14 年前

    有人能解释一下你为什么要这么做吗?

    Curiously recurring template pattern .