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

发布于 2024-11-07 08:30:20 字数 476 浏览 0 评论 0原文

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

Container <unsigned int> c;

这就是我重载 < 的方式;>操作员...

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

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

My topic question is a little misleading, I dont want to implement a whole class like a std::vector but I want to be able to create a class called Container so I can declare it like so:

Container <unsigned int> c;

So is this how I overload the <> operator...

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

苍风燃霜 2024-11-14 08:30:20

没有运算符<><> 表示 Container 是一个类模板。您需要遵循以下语法:

template <typename T>
class Container
{
    ...
};

最好的起点是找到一本好的 C++ 书籍,但您也可以尝试阅读 有关模板的 C++ 常见问题页面

There is no operator <>. The <> denotes that Container is a class template. You need syntax along the lines of:

template <typename T>
class Container
{
    ...
};

The best place to start is to find a good C++ book, but you could also try reading e.g. the C++ FAQ page about templates.

多情癖 2024-11-14 08:30:20

您应该了解有关模板的更多信息。
http://www.cplusplus.com/doc/tutorial/templates/

在简而言之,你想要的是:

template <class T>
class Container {
    ....
};

You should learn more about templates.
http://www.cplusplus.com/doc/tutorial/templates/

In a nutshell, what you want is:

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