C++各函数之间的转换方法
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"C++各函数之间的转换方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++各函数之间的转换方法"吧!1.标准数据之间会进行隐式类型安
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
互联网黑科技
百单网互联网科技有限公司怎么样
互联网科技公司简介
互联网是不是新科技
智网互联网科技
奇酷互联网科技
云电互联网科技
互联网金融科技平台
米客互联网科技
火传媒上海互联网科技
金融科技和互联网金融
丰台科技园 互联网公司
科技互联网的估值
湖北码尼互联网科技有限公司电话
佛山市拉法互联网科技有限公司
卡尔迅互联网科技有限公司
众联互联网络科技
互联网科技博主张洲
互联网科技创新方面的资料
互联网科技快速发展优美句子
瑰夏咖啡
互联网科技工作委员会
猪兼强互联网科技
紫鲸互联网科技
小马过河互联网科技
新华互联网科技2019
浙江互联网科技研学营
荆州市昕露互联网络科技有限公司
福仕德教育科技互联网
科技发展第三阶段互联网时代