我正在用 C++ 创建自己的 ArrayList STL 类,但现在遇到了问题。我想重载 [] 或 = 运算符(很抱歉,我不知道哪个更好实现),以便 = 运算符右侧的值被分配给 [ 访问的 vector 的元素] 运算符。
我重载了 [] 运算符以从数组中获取元素,但不知道如何处理它的赋值。
这是 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
更改。
关于c++ - 在 C++ 中重载 [] 和 = 运算符以接受我的模板类的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63545438/