项目场景:
模拟list,出现operator->调用不了的情况,这是什么情况呢???
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/aabdc3276581445b9b03f87289d6b5ca.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/00fa6558e0244378838e5ad00ea43c48.png)
问题描述
这里我是明确写了operator->函数的:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/333c06a93c1543768dfc028efb78dc8c.png)
但是却有下面报错:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2a1d17fc8e614122b44134f3a913b59b.png)
原因分析:
这里有个前置知识:operator->的调用逻辑是,先访问operator->()函数拿到对应val值的地址,再拿着这个拿到的地址对这个地址->成员变量。
如果此时返回值类型是T&,那么operator->
就不能->成员变量了!因为能->成员变量的前提得是一个指针/地址。
这里碰巧我就写错了一个字符:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/972106f4ffd84b8ab230d1b976a052a4.png)
解决方案:
只需要把T&改为T*即可。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/30b700b22da9415c80de7bdb393e26c1.png)
EOF