gpt4 book ai didi

c++ - 是否可以在实例方法中使用带有 "this"的重载运算符?

转载 作者:行者123 更新时间:2023-11-27 23:40:58 26 4
gpt4 key购买 nike

我正在制作链表,其中一种方法是打印链表的数据。我试图使用循环并重载 []运算符(返回 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com