C++各函数之间的转换方法
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,本篇内容主要讲解"C++各函数之间的转换方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++各函数之间的转换方法"吧!1.标准数据之间会进行隐式类型安
千家信息网最后更新 2025年01月24日C++各函数之间的转换方法
本篇内容主要讲解"C++各函数之间的转换方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++各函数之间的转换方法"吧!
1.标准数据之间会进行隐式类型安全转换,规则如下:
在这里主要探讨c++中类类型与普通类型的转换:
1.类类型转换普通类型
class Fraction{public: Fraction(int num,int den=1); ~Fraction(); //转换函数 /* 转换函数语法规则: operator Type() { Type ret ; ........ return ret; } */ operator double() const { return (double)(m_Numerator*1.0 / m_Denominator); }private: int m_Numerator; int m_Denominator;}; Fraction f(3, 5);double d = 4 + f;//d=4.6
这里4+f,调用转换函数将f转换为0.6
2.普通类型转换为类类型(non-explicit-one-argument ctor)
class Fraction{public: Fraction(int num,int den=1); ~Fraction(); Fraction operator+(const Fraction& f) { return Fraction(this->m_Numerator * f.m_Denominator + this->m_Denominator * f.m_Numerator, f.m_Denominator * this->m_Denominator); } private: int m_Numerator; int m_Denominator;};Fraction f(3, 5);Fraction d = f + 4;//调用+运算符函数,4会转为Fraction(4,1),含有接受一个参数的构造函数,否则也无法转换
3.同时含有转换函数和可以隐式的调用构造函数(转换构造参数)会报错
class Fraction{public: /* 转换构造函数: -有仅有一个参数 -参数是基本类型 -参数是其它类型 */ Fraction(int num,int den=1); ~Fraction(); operator double() const { return (double)(m_Numerator*1.0 / m_Denominator); } Fraction operator+(const Fraction& f) { return Fraction(this->m_Numerator * f.m_Denominator + this->m_Denominator * f.m_Numerator, f.m_Denominator * this->m_Denominator); }private: int m_Numerator; int m_Denominator;};
报错: "Fraction::operator +": 2 个重载有相似的转换 ,
所以在我们写构造函数都会使用关键字 explicit 防止类型隐式转换
class Fraction{public: explicit Fraction(int num,int den=1); ~Fraction(); operator double() const { return (double)(m_Numerator*1.0 / m_Denominator); } Fraction operator+(const Fraction& f) { return Fraction(this->m_Numerator * f.m_Denominator + this->m_Denominator * f.m_Numerator, f.m_Denominator * this->m_Denominator); } private: int m_Numerator; int m_Denominator;};Fraction f(3, 5);Fraction d = f + 4;//报错:不存在从 "double" 转换到 "Fraction" 的适当构造函数double d = f + 4;//可以,f转换
到此,相信大家对"C++各函数之间的转换方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
函数
类型
参数
之间
方法
C++
普通
内容
规则
学习
实用
更深
相似
适当
安全
关键
关键字
兴趣
同时
实用性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
新版国际服如何调服务器
杭州鑫元化网络技术公司
河南数据库空投箱厂家现货
缠论软件开发
求生之路帝王服务器怎么转职
我国网络安全专门法规
招标结束后可以换服务器型号吗
中央企业网络安全
境内服务器和国外服务器怎么区分
海康服务器添加监控主机
数据库下载安装实验报告
通过API操作mongo数据库
如何加快数据库查询时间
gta5代理服务器
普及网络安全文明
网络安全类的杂志 推荐
公共网络云钱包软件开发
口碑好的云服务器经销商
阿里云rds数据库做数据迁移
网络安全法多少实施的
完成一个软件开发的主要任务
云服务器免流
网络安全热点新闻2021
北京电力时钟同步服务器
数据库维保 报价
方舟服务器管理指令
佛山网络安全工程师薪资
检索国内外专利文献的数据库
协同oa平台服务器地址
阿里云服务器数据库能建几个