如何实现类似于 std::vector 的自定义类
我的主题问题有点误导,我不想实现像 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没有
运算符<>
。<>
表示Container
是一个类模板。您需要遵循以下语法:最好的起点是找到一本好的 C++ 书籍,但您也可以尝试阅读 有关模板的 C++ 常见问题页面。
There is no
operator <>
. The<>
denotes thatContainer
is a class template. You need syntax along the lines of: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.
您应该了解有关模板的更多信息。
http://www.cplusplus.com/doc/tutorial/templates/
在简而言之,你想要的是:
You should learn more about templates.
http://www.cplusplus.com/doc/tutorial/templates/
In a nutshell, what you want is: