实例方法中是否可以对“ this”使用重载运算符?

时间:2019-02-20 21:19:37

标签: c++

我正在创建一个链表,所需的方法之一是打印链表的数据。我试图使用循环并重载[]运算符(返回索引节点的数据类型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:

删除原始代码段,以避免任何潜在的学术诚信问题。

1 个答案:

答案 0 :(得分:3)

您必须编写Can not GET / my-new-url.com,因为重载的(*this)[i]运算符属于该类本身,但是[]只是一个指针。

表达式this是有效的,但通常this[i](其中p[i]是指针)被解释为p,因此它没有执行您想要的操作。