类型转化(运算符重载函数)

用转换构造函数可以将一个指定类型的数据转换为类的对象。但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个Complex类对象转换成double类型数据)。在C++提供类型转换函数(type conversion function)来解决这个问题。类型转换函数的作用是将一个类的对象转换成另一类型的数据。
类型转换函数的一般形式为:
operator 类型名( ){
实现转换的语句
}
下面是简单实现。这时候,Base起了两方面的作用:类和数据类型。系统会在需要的时候自动调用对应的类方法。
#include <iostream>
using namespace std;
class Base{
private:
float x;
int y;
public:
Base (float xx=0,int yy=0){
x = xx;
y = yy;
}
operator float (){
return x;
}
operator int (){
return y;
}
void display(){
cout<<"x is :"<<x<<";y is :"<<y<<endl;
}
};
int main()
{
Base base(1.0,2);
base.display();
int y= base;
float x= base;
cout<<"NewX is :"<<x<<"NewY is:"<<y<<endl;
return 0;
}
基本运算符重载(自增自减)
主要总结 自增自减的前置和后置的用法。其他的加减乘除较简单。
简单的代码实现(纯语法)
#include <iostream>
using namespace std;
class Base{
private:
float x;
int y;
public:
Base (float xx=0,int yy=0){
x = xx;
y = yy;
}
operator float (){
return x;
}
operator int (){
return y;
}
Base operator ++(){//前置 ++
x++;
y++;
return *this;
}
Base operator --(){
x--;
y--;
return *this;
}
Base operator ++(int ){//后置 ++
Base temp = *this;
++(*this);
return temp;
}
Base operator --(int ){
Base temp = *this;
--(*this);
return temp;
}
void display(){
cout<<"x is :"<<x<<";y is :"<<y<<endl;
}
};
int main()
{
Base base(1.0,1);
Base tem = base++;
base.display();
tem.display();
Base base2(1.0,1);
tem = ++base2;
base.display();
tem.display();
return 0;
}
发现:
后置和前置的区别是有无int参数。
后置需要申请新的空间,大小是类的大小。所以,后置操作会有额外的时间空间开销。
尽量使用前置操作:如:for (int i=0;i<n;++i)
以上这篇浅谈C++类型转化(运算符重载函数)和基本运算符重载(自增自减)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# c
# 运算符重载函数
# 详解C++函数类型与重载函数
# C++类重载函数的function和bind使用示例
# 一文详解C++子类函数为什么不能重载父类函数
# 运算符
# 给大家
# 转换成
# 转换为
# 会有
# 加减乘除
# 其他的
# 会在
# 希望能
# 这篇
# 浅谈
# 两方面
# 小编
# 解决这个问题
# 大家多多
# 有无
# 这时候
# xhtml
# brush
# pre
相关文章:
Swift中switch语句区间和元组模式匹配
高性价比服务器租赁——企业级配置与24小时运维服务
如何解决ASP生成WAP建站中文乱码问题?
如何在万网ECS上快速搭建专属网站?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
高防服务器租用首荐平台,企业级优惠套餐快速部署
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
用v-html解决Vue.js渲染中html标签不被解析的问题
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
专业商城网站制作公司有哪些,pi商城官网是哪个?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
北京建设网站制作公司,北京古代建筑博物馆预约官网?
如何在阿里云域名上完成建站全流程?
如何选择CMS系统实现快速建站与SEO优化?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
如何在万网自助建站中设置域名及备案?
如何快速搭建高效服务器建站系统?
如何高效完成独享虚拟主机建站?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
建站之星2.7模板:企业网站建设与h5定制设计专题
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何在七牛云存储上搭建网站并设置自定义域名?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
建站主机如何选?高性价比方案全解析
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何正确下载安装西数主机建站助手?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何在橙子建站上传落地页?操作指南详解
建站之星安装失败:服务器环境不兼容?
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何快速查询网站的真实建站时间?
如何基于云服务器快速搭建个人网站?
动图在线制作网站有哪些,滑动动图图集怎么做?
为什么Go需要go mod文件_Go go mod文件作用说明
如何通过虚拟主机快速完成网站搭建?
网站制作模板下载什么软件,ppt模板免费下载网站?
网站制作难吗安全吗,做一个网站需要多久时间?
ui设计制作网站有哪些,手机UI设计网址吗?
利用JavaScript实现拖拽改变元素大小
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何基于云服务器快速搭建网站及云盘系统?
建站之星如何修改网站生成路径?
如何通过FTP服务器快速搭建网站?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
*请认真填写需求信息,我们会在24小时内与您取得联系。