如何实现类似于std :: vector的自定义类

use*_*747 0 c++ overloading

我的主题问题有点误导,我不想像std :: vector那样实现整个类,但我希望能够创建一个名为Container的类,所以我可以像这样声明它:

Container <unsigned int> c;
Run Code Online (Sandbox Code Playgroud)

这是我如何重载<>运算符...

class Container
{
   private:
      Container() 
      {
         ...
      }

   public:
      void operator <>( unsigned int )
      {
         // what do I put here in the code?
         // maybe I call the private constructor...
         Container();
      }
};
Run Code Online (Sandbox Code Playgroud)

Oli*_*rth 7

没有operator <>.的<>表示Container是一个类模板.您需要的语法如下:

template <typename T>
class Container
{
    ...
};
Run Code Online (Sandbox Code Playgroud)

最好的起点是找一本好的C++书籍,但你也可以尝试阅读关于模板C++ FAQ页面.