C++中为什么要小心基类的相等运算符
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"C++中为什么要小心基类的相等运算符",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++中为什么要小心基类的相等运算符"吧!Rea
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
瑰夏咖啡
互联网科技
科技互联网龙头
互联网中国科技
互联网金融与金融科技
齐家互联网科技
互联网金融科技创新
衡水科技产业互联网平台
富国互联网科技创新基金
佳云科技和互联网广告
阿里互联网科技企业
明优互联网科技有限公司
济南有互联网科技公司吗
中科明德北京互联网科技
工业互联网展湾科技股份有限公司
中国互联网有什么科技
上海创道互联网络科技有限公司
中国科技和美国互联网
众联互联网络科技
互联网科技企业文化
科技股互联网
互联网科技公司发展
合肥互联网科技公司
健康食品互联网创新科技园项目
互联网科技大赛获奖感言
怎样加入科技互联网
中国科技和美国互联网
互联网的科技体现在哪里
恒生科技互联网指数十大成分股
前海云享互联网科技