C++各函数之间的转换方法
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"C++各函数之间的转换方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++各函数之间的转换方法"吧!1.标准数据之间会进行隐式类型安
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
超市配送网络技术
百雀羚数据库
核心交易软件开发文档
标签打印机怎么更换数据库
电脑上发文件服务器拒接
党委网络安全和信息化办公室
番禺区光纤网络技术开发价格多少
多媒体触摸查询软件开发平台
网络安全100强排名
市面上数据库软件价位
腾讯深度网络安全
内江浩瀚软件开发有限公司
CIW网络安全基础试题
阅读软件开发需求
南邮成绩管理数据库
曙光服务器a440-g内存条
凌云网络安全
数据库优化设计案例
杭州最好的外贸数据库获取渠道
张家港智腾网络技术有限公司
趣丸网络技术等级
k8s 数据库工具
云服务器ecs 备份
sql可以软件开发吗
华为云服务器怎么获得管理员权限
4h4g服务器能开多少主机
TMRED数据库
东南大学空间网络安全考研
数据库优惠券
985硕士软件开发工资多少