C++中为什么要小心基类的相等运算符
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,这篇文章主要讲解了"C++中为什么要小心基类的相等运算符",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++中为什么要小心基类的相等运算符"吧!Rea
千家信息网最后更新 2025年01月25日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安全错误
数据库的锁怎样保障安全
网络安全共筑防线
如何自建表格数据库
软件开发文档代码化
网络安全法手抄报语
网络安全防护对策
浅谈企业网络安全建设
安卓应用软件开发资料
数据库系统安全总结
大学生网络安全意识测试
网络安全信息办公室的职责
从化网络数据库维护怎么收费
ibm免费云服务器测评
硬件网络安全维护公司
杭州福特威网络技术
国家对网络安全与信息化
30岁想学网络技术学什么好
软件开发企业成本分录
电脑网络安全模式怎么进
华为云升腾云服务器
服务器管理口工作原理
数据库从业人员技能
服务器工程师必备技能
网页登陆数据库
随着手机网络技术的发展
网络安全中物理安全的特点
怎么在服务器下载app源码
关系型数据库可出现相同列吗
贵州网络技术中专学校排名
复制mysql数据库表信息
关系型数据库设计分为哪几个阶段