C++中为什么要小心基类的相等运算符
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,这篇文章主要讲解了"C++中为什么要小心基类的相等运算符",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++中为什么要小心基类的相等运算符"吧!Rea
千家信息网最后更新 2024年12月12日C++中为什么要小心基类的相等运算符Reason(原因) Example, bad(反面示例) Note(注意) Enforcement(实施建议)
这篇文章主要讲解了"C++中为什么要小心基类的相等运算符",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++中为什么要小心基类的相等运算符"吧!
为继承体系写出简单又好用的相等运算符真的很难。
class B {
string name;
int number;
virtual bool operator==(const B& a) const
{
return name == a.name && number == a.number;
}
// ...
};
B的相等比较运算符的第二个操作数接受类型转换,但是第一个不行。
class D :B {
char character;
virtual bool operator==(const D& a) const
{
return name == a.name && number == a.number && character == a.character;
}
// ...
};
B b = ...
D d = ...
b == d; // compares name and number, ignores d's character
d == b; // error: no == defined
D d2;
d == d2; // compares name, number, and character
B& b2 = d2;
b2 == d; // compares name and number, ignores d2's and d's character
当然有办法让相等比较运算符在继承体系中动作,但是简单的方法不行。
本规则适用于所有的常见比较运算符:!=, <, <=, >, 和 >=。
提示被定义为虚函数的相等比较运算符;其他比较运算符也一样:!=, <, <=, >, 和 >=。
感谢各位的阅读,以上就是"C++中为什么要小心基类的相等运算符"的内容了,经过本文的学习后,相信大家对C++中为什么要小心基类的相等运算符这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
运算符
运算
C++
学习
不行
体系
内容
函数
办法
动作
原因
反面
就是
常见
建议
思路
情况
操作数
文章
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库的 锁
福建工业软件开发市价
关于校园网络安全知识的广播
通信网络安全祝福语
泉州易度网络技术服务中心
sql数据库学习资料
x86服务器厂商何其多
SPSS利用数据库导入数据
计算机网网络技术好学吗
江西常用软件开发定制价格
潍坊有没有软件开发公司
值得信任的分布式数据库事务
疫苗网络安全手抄报该写什么
我的世界单反服务器
净网2018网络安全法
芜湖手机软件开发定制
服务器cpu 至强
游戏服务器怎么看地址
sciverse数据库
学校网络安全知识竞赛获奖名单
网络安全费用申请
新松机器人软件开发待遇
数据库的数据模型包括哪三个要素
GM怎么修改游戏数据库
linux服务器远程桌面
湖南海商网络技术有限公司
游戏服务器断线是什么原因
崩坏3都有什么服务器
公安网络安全风险隐患
简述什么是实时数据库