对隐式类型转换保持警觉

news/2025/11/10 17:42:32/文章来源:https://www.cnblogs.com/caojie/p/19207793
  1. 操作符重载引起的隐式类型转换
    缺点:可能导致非预期的函数被调用
    解决:以功能对等的另一个函数取代类型转换操作符
    举例:
    class Rational{
    public:
    Rational(int num = 0,int deno = 1):num_(num),deno_(deno){};
    operator double() const{
    return static_cast(num_/deno_);
    }
    private:
    int num_;
    int deno_;
    };

Rational r(1,2);
cout << r; //Rationl隐式转换为double类型,可能非预期的行为

使用asDouble()函数取代:
class Rational{
public:
...
double asDouble() const{
return static_cast(num_/deno_);
}
};

  1. 类型转换构造函数引起的隐式类型转换
    解决方案: 1、使用C++新特性 explicit,仅支持显式转换
    2、类包含一个以上的“用户定制行为”
    template
    class Array{
    public:

class ArraySize{
public:
ArraySize(inr num):theSize(num){}
int size() const{return theSize;};
private:
int theSize;
};

Array(int lowBound,int highBound);
Array(ArraySize size);
bool operator==(const Array& lhs,
const Array& rhs);
...
};

Array a(10); //对象调用int转换为ArraySize,再转换为Array的隐式转换行为是被允许的
Array b(10);
for(int i = 0; i < 10;++i)
if(a == b[i])... //如此类内部需要调用两个用户定制转换行为,一个将int转换为ArraySize,
//另一个将ArraySize转换为Array,如此的隐式转换是被禁止的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/961606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

es中批量删除数据

创建bulk_delete.json 文件 {"delete":{"_index":"vivian-scene-warn-history","_type":"warnHistory","_id":"5befb3a1b25c4841bca3637efc36a320&…

docker安装mysql/Redis/nacos/minio/es/xxl-job

yum安装jdk yum -y list java*yum install -y java-1.8.0-openjdk.x86_64#检查是否安装成功java -versiondocker安装mysql docker pull mysql:5.8 docker images mkdir -p /home/service/mysql/data mkdir -p /hom…

低代码高价值场景:让设备管理真正成为企业数字化资产

本文作者:得帆信息联合创始人&CIO刘鑫 制造业设备管理的痛点 在制造业的生产现场,设备是产能的根基。无论是冲压机、注塑机还是检测设备,一旦停机,生产节拍就被打乱,交付计划可能瞬间失控。设备的稳定运行不仅…

re-BABYRE-攻防世界

有关花指令和异或加密 第一步查壳可以看出是ELF文件,拖进IDA里面看一下,shift+F12查看字符串,双击“Please input flag:”或者“Right!"跳转到反汇编窗口进入mian函数并F5查看伪代码点击查看代码 int __fastca…

二维数组去重

二维数组去重def quchong(lst): # 使用了list传引用的特性.加速了计算.for d,i in enumerate(lst):for d1,i1 in enumerate(lst,start=d):if set(i)<set(i1):lst.pop(d)if set(i1)<set(i):lst.pop(d1)return lst…

Pinely Round 5 (Div. 1 + Div. 2) A-D细解

Pinely Round 5 (Div. 1 + Div. 2) A. Round Trip 【题目】 参加cf比赛,分两类div1 div2, div1对所有人rated, div2只对<X的rated。 你可以主动选择在rated的场次加分或者减分,如果当前场次能够rated,当前分为R…

2025年三相滤波器源头厂家权威推荐榜单:EMI电源滤波器/防雷滤波器/电源滤波器源头厂家精选

在工业自动化与电能质量要求不断提升的背景下,三相滤波器作为抑制电磁干扰、保障设备稳定运行的关键元件,其性能直接影响整个电力系统的可靠性。根据行业数据显示,全球电源滤波器市场规模预计到2027年将达到13.6亿美…

UT010029: Stream is closed

做下载文件的时候遇到了一个报错:UT010029: Stream is closed经排查,是因为下载接口有返回值导致的

官宣上线!RocketMQ for AI:企业级 AI 应用异步通信首选方案

随着 AI 技术的快速发展和应用落地,RocketMQ 已完成向“AI MQ”方向的战略升级,不仅支持传统的微服务应用,也致力于为企业级 AI 应用的开发和集成提供一站式异步通信解决方案,涵盖会话管理、Agent 通信、知识库构建…

GD32VW553-IOT V2 测评和移植 - 实践

GD32VW553-IOT V2 测评和移植 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…

什么是 FFmpeg:开源免费的多媒体处理框架 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AI元人文宪章:在缺陷中前行——价值权衡时代的协作体系

AI元人文宪章:在缺陷中前行——价值权衡时代的协作体系 前言:拥抱不完美的规则 规则,是人类智慧的结晶,也是人类无知的映射。我们制定规则以求秩序与公平,却必须清醒地认识到:任何规则体系,从其诞生之初便内嵌了…

2025年台湾铨盛仪表公司口碑推荐榜

2025年台湾铨盛仪表公司口碑推荐榜专业推荐首选:昆山凯沃自动化控制设备有限公司作为台湾铨盛仪表(ADTEK)在中国大陆地区授权一级代理商已达18年的专业服务商,昆山凯沃自动化控制设备有限公司凭借其深厚的技术底蕴…

2025年销量高的前置过滤器口碑推荐榜

2025年销量高的前置过滤器口碑推荐榜随着人们对饮用水安全的日益重视,前置过滤器作为家庭净水系统的第一道防线,已成为越来越多家庭的必备选择。在众多品牌中,GOOTHO库硕凭借其卓越的性能和贴心的定制服务,在2025年…

2025年靠谱的藤椒火锅底料口碑推荐榜单

2025年藤椒火锅底料口碑推荐榜单:饭巢藤椒火锅底料领跑行业榜单前言随着消费者对健康饮食需求的不断提升,藤椒火锅底料凭借其清爽麻香、不油腻的特点,成为2025年火锅市场的新宠。经过对全国3000余家商超专柜销售数据…

2025年离心管道风机定制厂家推荐排行榜

2025年离心管道风机定制厂家推荐排行榜在工业通风和空调系统领域,离心管道风机作为核心设备,其性能和质量直接影响整个系统的运行效率。随着2025年的到来,市场对高品质离心管道风机的需求持续增长。以下是经过综合评…

CF2119E And Constraint

学到了一些东西。 首先考虑到 \(b_i\) 的二进制位一定包含了 \(a_{i - 1} | a_i\) 的二进制位,我们不妨求一个 \(p_i\) 表示将 \(b_i\) 最少加多少可以满足这个条件的数。 但是我们发现可能存在一些的与的数比 \(a_i\…

Follow the Penguins

题意: 给定若干个点,它们有一个要追赶的点和当前位置,求最后所有点停止的时间,(一个点移动的速度为0.5) 思路: 使用set模拟优先队列 求出每个点移动的方向(一定不变了) 存一个pair<当前点和追赶点的距离 即…

2025年钢管输送翻转生产厂家权威推荐榜单:车床辅助机构/油套管加工机构/管螺纹加工送料机构源头厂家精选

在工业自动化与油气产业协同发展的背景下,钢管输送翻转设备作为管材加工产线的核心装备,其性能直接影响生产效率和产品质量。根据行业数据显示,全球工业自动化设备市场规模预计到2027年将达到3062亿美元,年复合增长…

zed odoo lsp配置

文档: https://github.com/odoo/odoo-zed https://github.com/odoo/odoo-ls/wiki/3.-Configuration-files#no-configuration-file // zed settings.json"lsp": {"rust-analyzer": {"initial…