21. 隐式转换和explicit
1.隐式转换2.explicit1.隐式转换隐式转换是编译器自动完成的类型转换,无需程序员显式指定;对于类类型来说,核心触发场景是:a.类拥有单参数构造函数 b.第一个参数外,其余参数都有默认值的构造函数 编译器会利用这个构造函数,将参数类型的值隐式转换为类对象#include iostream#include stringusingnamespacestd;// 定义一个简单的包装类classMyString{private:stringstr;public:// 单参数构造函数const char* - MyStringMyString(constchar*s):str(s){cout构造函数const char* - MyStringendl;}voidprint(){cout内容strendl;}};// 测试函数参数为MyString类型voidshowString(MyStrings){s.print();}intmain(){// 场景1直接用const char*赋值给MyString对象隐式转换MyStrings1hello;// 编译器自动调用MyString(hello)// 场景2函数参数期望MyString传入const char*隐式转换showString(world);// 编译器自动将world转换为MyString(world)return0;}2.explicitexplicit关键字的核心作用是:修饰类的构造函数(C11后也可修饰转换函数),禁止编译器对该构造函数进行隐式转换,只 能通过显式方式创建对象1).构造函数加上explicit#include iostream#include stringusingnamespacestd;classMyString{private:stringstr;public:// 加explicit禁止隐式转换explicitMyString(constchar*s):str(s){cout构造函数const char* - MyStringendl;}explicitMyString(intn):str(to_string(n)){}voidprint(){cout内容strendl;}};voidshowString(MyStrings){s.print();}intmain(){// ❶ 错误隐式转换被禁止// MyString s1 hello; // 编译报错无法从const char[6]转换为MyString// ❷ 正确显式构造直接调用构造函数MyStrings1(hello);s1.print();// ❸ 错误函数参数的隐式转换被禁止// showString(world); // 编译报错无法将参数从const char[6]转换为MyString// ❹ 正确显式转换强制调用构造函数showString(MyString(world));// 或C风格的强制转换showString(static_castMyString(123));return0;}2).explicit修饰转换函数(operatorT())classMyInt{private:intval;public:MyInt(intv):val(v){}// 显式转换为int禁止隐式转换explicitoperatorint()const{returnval;}};intmain(){MyIntnum(10);// 错误隐式转换被禁止// int a num;// 正确显式转换intbstatic_castint(num);return0;}

相关新闻

2026年程序员AI转型避坑指南:这3个技术栈让你薪资翻倍(附大模型微调实战案例)

2026年程序员AI转型避坑指南:这3个技术栈让你薪资翻倍(附大模型微调实战案例)

文章目录前言一、先搞懂:2026年AI程序员,到底要会什么?二、核心技术:LoRA/QLoRA,用大白话讲透1. LoRA是什么?2. QLoRA是什么?3. 为什么这俩是2026年必学?三、实战环节:12…

2026/5/17 4:21:55 阅读更多 →
Linux历史上的十大关键贡献人物

Linux历史上的十大关键贡献人物

今天,我们来聊聊一个几乎支撑了整个现代互联网和云计算世界的操作系统——Linux。 从1991年一个芬兰大学生在新闻组上发的一条消息,到如今安卓手机、超级计算机、云服务器几乎无处不在的霸主地位,Linux的崛起堪称科技史上最伟大的开源奇迹之一。它不只是一个内核,更是一种…

2026/5/17 4:21:55 阅读更多 →
2026别错过!风靡全网的一键生成论文工具 —— 千笔ai写作

2026别错过!风靡全网的一键生成论文工具 —— 千笔ai写作

你是否曾为论文选题发愁,反复修改却总不满意?是否在深夜面对空白文档无从下笔,又担心查重率过高?论文写作的每一步都充满挑战,尤其是对MBA学生而言,时间紧、任务重,更需要高效可靠的帮手。千笔A…

2026/5/17 4:21:55 阅读更多 →

最新新闻

5个步骤搭建免费动作捕捉系统:FreeMoCap完全指南

5个步骤搭建免费动作捕捉系统:FreeMoCap完全指南

5个步骤搭建免费动作捕捉系统:FreeMoCap完全指南 【免费下载链接】freemocap Free Motion Capture for Everyone 💀✨ 项目地址: https://gitcode.com/GitHub_Trending/fr/freemocap FreeMoCap是一个免费开源的动作捕捉系统,为所有人提…

2026/7/5 4:17:14 阅读更多 →
Day3 第二章 链表part2

Day3 第二章 链表part2

了解链表 1. 什么是链表 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)…

2026/7/5 4:17:14 阅读更多 →
聊城食品洁净车间建设指南,按加工场景适配净化板更耐用

聊城食品洁净车间建设指南,按加工场景适配净化板更耐用

聊城作为鲁西农副产品加工核心区域,形成禽肉屠宰、速冻预制菜、果蔬深加工、杂粮面点、宠物食品五大加工集群,大量新建洁净车间、老旧厂房改造需求持续增多。本地的特殊工况,也让选择板材变得复杂纠结起来。 生产线全天用水冲洗,血…

2026/7/5 4:15:13 阅读更多 →
基于TB9051FTG与MSP432的静音直流电机控制方案

基于TB9051FTG与MSP432的静音直流电机控制方案

1. 项目背景与核心需求在工业自动化、消费电子和机器人领域,直流电机控制一直是个经典课题。传统PWM调速方案虽然简单易实现,但存在明显的电磁噪声和机械振动问题——当PWM频率落在人耳可听范围(20Hz-20kHz)时,电机会发…

2026/7/5 4:13:13 阅读更多 →
Power BI热力图实战:用矩阵+条件格式驱动业务决策

Power BI热力图实战:用矩阵+条件格式驱动业务决策

1. 为什么一张“彩色表格”能成为业务决策的加速器?在Power BI里做可视化,很多人第一反应是柱状图、折线图、饼图——稳妥、熟悉、老板一眼能看懂。但真正让我在客户现场被反复追问“这个怎么做的?”“能不能再加一列?”“能不能按…

2026/7/5 4:11:12 阅读更多 →
轻量级AI智能体:安全、场景与硬件穿透的工程实践

轻量级AI智能体:安全、场景与硬件穿透的工程实践

1. 项目概述:轻量级AI智能体不是“减配版”,而是精准适配的生产力工具最近在技术圈和办公软件社群里,“养龙虾”这个词火了——它不是水产养殖指南,而是对 OpenClaw 架构下各类 AI 智能体(Agent)产品的戏称…

2026/7/5 4:11:12 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻