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

用转换构造函数可以将一个指定类型的数据转换为类的对象。但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个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
相关文章:
如何通过万网虚拟主机快速搭建网站?
已有域名如何免费搭建网站?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
如何用低价快速搭建高质量网站?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
建站为何优先选择香港服务器?
宝塔面板创建网站无法访问?如何快速排查修复?
javascript中的try catch异常捕获机制用法分析
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
如何用PHP快速搭建CMS系统?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
建站之星后台密码遗忘或太弱?如何重置与强化?
如何规划企业建站流程的关键步骤?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
宝塔Windows建站如何避免显示默认IIS页面?
建站之星好吗?新手能否轻松上手建站?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
建站之家VIP精选网站模板与SEO优化教程整合指南
TestNG的testng.xml配置文件怎么写
音乐网站服务器如何优化API响应速度?
广州营销型建站服务商推荐:技术优势与SEO优化解析
建站之星CMS五站合一模板配置与SEO优化指南
建站之星展会模版如何一键下载生成?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
湖北网站制作公司有哪些,湖北清能集团官网?
宝塔建站后网页无法访问如何解决?
建站之星价格显示格式升级,你的预算足够吗?
如何用花生壳三步快速搭建专属网站?
如何用y主机助手快速搭建网站?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
C#怎么创建控制台应用 C# Console App项目创建方法
建站之星如何快速解决建站难题?
如何通过免费商城建站系统源码自定义网站主题与功能?
如何通过cPanel快速搭建网站?
高防服务器租用首荐平台,企业级优惠套餐快速部署
建站之星安装后界面空白如何解决?
建站之星如何配置系统实现高效建站?
如何通过云梦建站系统实现SEO快速优化?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
建站主机与虚拟主机有何区别?如何选择最优方案?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。