如何解决重载[]和=运算符以接受C ++中我的模板类的值
我正在用C ++创建自己的ArrayList STL类,现在陷入了一个问题。我想重载[]或=运算符(很抱歉,我不知道哪个将是更好的实现),以便=运算符右侧的值被分配给[ ]运算符。
我已经重载了[]运算符以从数组中获取元素,但不知道如何处理该赋值。
这是ArrayList类的实现:
template<class T> class ArrayList
{
T* array;
ArrayList() {}
// Implemetation of [] overloading
T& operator[] (int index) {return array[index];}
}
解决方法
您感到困惑。您正在询问分配T
对象,但是T
不是您的ArrayList
类。由T
类来处理自己的任务,而不是由ArrayList
类来处理。
您已经编写的代码可以正常工作。
ArrayList<int> x = ...;
x[1] = 2;
ArrayList<std::string> y = ...;
y[0] = "hello";
尽管您应该进行Ted在评论中提到的const
更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。