我正在制作链表,其中一种方法是打印链表的数据。我试图使用循环并重载 []
运算符(返回 inode 的数据类型 T
)打印列表,如下所示:
for(unsigned int i = 0; i < length; i++){
cout << this[i] << endl;
}
编译器抛出一个错误 cout
不支持类型 const LinkedList<T>
,尽管这段代码在我的测试文件中有效:
LinkedList<int> newList = LinkedList<T>();
populateList
cout << newList[5] << endl;
我怀疑我的语法将重载括号运算符与 this
一起使用是不正确的,有人可以详细说明为什么吗?
编辑2:
删除原始代码片段以避免任何潜在的学术诚信问题。
最佳答案
您必须编写 (*this)[i]
,因为重载的 []
运算符属于类本身,但是 this
只是一个指针。
表达式 this[i]
是有效的,但通常 p[i]
其中 p
是一个指针被解释为 *(p + i)
,所以它没有按照您的意愿去做。
关于c++ - 是否可以在实例方法中使用带有 "this"的重载运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54795409/