【Bug记录】operator->返回类型错误导致operator->调用不了

简介: 【Bug记录】operator->返回类型错误导致operator->调用不了

项目场景:

模拟list,出现operator->调用不了的情况,这是什么情况呢???


问题描述

这里我是明确写了operator->函数的:

但是却有下面报错:

原因分析:

这里有个前置知识:operator->的调用逻辑是,先访问operator->()函数拿到对应val值的地址,再拿着这个拿到的地址对这个地址->成员变量

如果此时返回值类型是T&,那么operator->就不能->成员变量了!因为能->成员变量的前提得是一个指针/地址。

这里碰巧我就写错了一个字符:


解决方案:

只需要把T&改为T*即可。


EOF

相关文章
|
6月前
|
存储 算法 编译器
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
149 0
|
3月前
|
编译器
【Bug记录】list模拟实现const迭代器类
【Bug记录】list模拟实现const迭代器类
|
18天前
|
SQL 存储 关系型数据库
SQL判断CHAR类型字段不为空的方法与技巧
在SQL查询中,判断一个CHAR类型字段是否不为空是一个常见的需求
|
3月前
|
编译器
【Bug记录】C2662:不能将this指针从const转换为非const
【Bug记录】C2662:不能将this指针从const转换为非const
|
3月前
【Bug记录】模板生成错误:不属于vector的成员
【Bug记录】模板生成错误:不属于vector的成员
|
6月前
|
编译器 C语言 C++
【C++基础】 --- C++相对于C新增bool类型变量
【C++基础】 --- C++相对于C新增bool类型变量
42 1
|
Java 编译器
重载的方法能否根据返回类型进行区分?
重载的方法不能根据返回类型进行区分。方法的重载是基于方法名称和参数列表来进行区分的,与返回类型无关。这是因为在Java中,编译器在确定要调用哪个重载方法时,仅根据传递给方法的参数来进行决策。
355 0
|
存储 Web App开发 安全
检查 malloc 函数返回内容的四个理由
检查 malloc 函数返回内容的四个理由
解决办法:对‘operator delete(void*)’未定义的引用
解决办法:对‘operator delete(void*)’未定义的引用
186 0
|
安全 Java 程序员
JDK1.8新特性(八):还在重复写空指针检查代码?赶紧使用Optional吧!
结合Optional、Lambda表达式,可以明显看到重构之后,使得代码更加流畅连贯,并且提高代码整体可读性。
308 0
JDK1.8新特性(八):还在重复写空指针检查代码?赶紧使用Optional吧!