我正在创建一个链表,所需的方法之一是打印链表的数据。我试图使用循环并重载[]
运算符(返回索引节点的数据类型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
一起使用的语法不正确,有人可以解释为什么吗?
EDIT2:
删除原始代码段,以避免任何潜在的学术诚信问题。
答案 0 :(得分:3)
您必须编写Can not GET / my-new-url.com
,因为重载的(*this)[i]
运算符属于该类本身,但是[]
只是一个指针。
表达式this
是有效的,但通常this[i]
(其中p[i]
是指针)被解释为p
,因此它没有执行您想要的操作。