C++ 类型转化(运算符重载函数)和基本运算符重载(自增自减)
来源:互联网 发布:mac的常用快捷键 编辑:程序博客网 时间:2024/06/06 08:42
类型转化(运算符重载函数)
用转换构造函数可以将一个指定类型的数据转换为类的对象。但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个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;}
发现:
1. 后置和前置的区别是有无int参数。
2. 后置需要申请新的空间,大小是类的大小。所以,后置操作会有额外的时间空间开销。
3. 尽量使用前置操作:如:for (int i=0;i<n;++i)
阅读全文
0 0
- C++ 类型转化(运算符重载函数)和基本运算符重载(自增自减)
- [转]C++ 类型转化(运算符重载函数)和基本运算符重载(自增自减)
- 自增自减运算符重载
- 重载自增,自减运算符
- C++运算符重载(9) - 自增和自减
- 重载自减运算符
- 自增运算符重载
- 自增运算符重载
- 自增运算符重载
- 058day(自增,自减运算符重载和继承与派生的基本概念)
- 重载自增运算符(前置自增++p和后置自增p++)
- 重载前置,后置(自增运算符 ++ 和自减运算符 --)
- 重载前置,后置(自增运算符 ++ 和自减运算符 --)
- 重载前置,后置(自增运算符 ++ 和自减运算符 --)
- 【C++】重载运算符和重载函数
- 菜鸟成长之自增自减运算符重载
- 自增、自减运算符的重载
- 运算符重载之自增自减篇
- EventListener
- 致疯狂的人
- Android高级控件系列二之第三方控件PullToRefreshListView下拉刷新的使用
- 新建Java项目时遇到的问题
- Spring4-Spring概述
- C++ 类型转化(运算符重载函数)和基本运算符重载(自增自减)
- JavaEE学习11--数据库语言SQL
- 反射机制
- 欢迎使用CSDN-markdown编辑器
- tomcat一直报 java.lang.OutOfMemoryError: PermGen space,解决方法
- HBase单机踩过的坑
- Android中解决包冲突的问题(简单暴力)
- Android常用控件-02
- Android-Smali-入门介绍/基础语法