C++ operator重载运算符和隐式转换功能的实现:

#include <iostream>
using namespace std;
class OperatorTest {
public:
int value_; OperatorTest() {
value_ = ;
} /*++A*/
OperatorTest& operator ++() {
value_++;
return *this;
} /*A++*/
OperatorTest operator ++(int) {
OperatorTest ot(*this);
value_++;
return ot;
} /*A+B*/
OperatorTest operator +(OperatorTest& ot) {
OperatorTest ot_tmp;
ot_tmp.value_ = value_ + ot.value_; return ot_tmp;
} /*A(int)赋值*/
OperatorTest& operator ()(int a) {
value_ = a;
return *this;
} /*A<B*/
bool operator <(OperatorTest& ot) {
return value_ < ot.value_;
} /*A>B*/
bool operator >(OperatorTest& ot) {
return value_ > ot.value_;
} /*A!=B*/
bool operator !=(OperatorTest& ot) {
return value_ != ot.value_;
} /*A==B*/
bool operator ==(OperatorTest& ot) {
return value_ == ot.value_;
} /*A+=B*/
OperatorTest& operator +=(OperatorTest& ot) {
value_ += ot.value_;
return *this;
} /*A-=B*/
OperatorTest& operator -=(OperatorTest& ot) {
value_ -= ot.value_;
return *this;
} /*隐式转换*/
operator int() {
return value_;
}
}; int main() {
OperatorTest A, B; cout << "++A:" << A++ << endl;
cout << "B++:" << ++B << endl;
cout << "A+B:" << A + B << endl;
cout << "A(int):" << A() << endl;
cout << "A,B:" << A << "," << B << endl;
cout << "A<B:" << (A < B) << endl;
cout << "A>B:" << (A > B) << endl;
cout << "A!=B:" << (A != B) << endl;
cout << "A==B:" << (A == B) << endl;
cout << "A+=B:" << (A += B) << endl;
cout << "A-=B:" << (A -= B) << endl;
}

运算结果:

++A:
B++:
A+B:
A(int):
A,B:,
A<B:
A>B:
A!=B:
A==B:
A+=B:
A-=B:

可以在网上在线运行代码,C++Shell网址:http://cpp.sh/82xpny

C++ operator重载运算符和隐式转换功能的实现的更多相关文章

  1. null的坑 和 比较运算符、相等运算符的隐式转换问题 (在javascript中,null>=0 为真,null<=0 为真,null==0却为假,null到底是什么?)

    null在关系运算中的坑 & 关系运算符的隐式转换问题 注意: 比较运算符 和 相等运算符 的 ECMAscript 语法实现不同. 比较运算符 和 相等运算符 对数据进行了隐式转换, 相当于 ...

  2. C# 转换符的重载 显示、隐式转换

    class Complex { //保存转换的值 Int32 v; public Complex(Int32 x) { v = x; } public Int32 ToInt32() { return ...

  3. C++ 构造函数 隐式转换 深度探索,由‘类对象的赋值操作是否有可能调用到构造函数’该实验现象引发

    Test1 /** Ques: 类对象的赋值操作是否有可能调用到构造函数 ? **/ class mystring { char str[100]; public: mystring() //myst ...

  4. Scala入门到精通——第十九节 隐式转换与隐式參数(二)

    作者:摇摆少年梦 配套视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 隐式參数中的隐式转换 函数中隐式參数使用概要 隐式转换问题梳理 1. 隐式參数中的 ...

  5. 21.C++- "++"操作符重载、隐式转换之explicit关键字、类的类型转换函数

    ++操作符重载 ++操作符分为前置++和后置++,比如: ++a;  a++; ++操作符可以进行全局函数或成员函数重载 重载前置++操作符不需要参数 重载后置++操作符需要一个int类型的占位参数 ...

  6. C++ 语言中的重载、内联、缺省参数、隐式转换等机制展现了很多优点

    C++ 语言中的重载.内联.缺省参数.隐式转换等机制展现了很多优点,但是这些 优点的背后都隐藏着一些隐患.正如人们的饮食,少食和暴食都不可取,应当恰到好处. 我们要辨证地看待 C++的新机制,应该恰如 ...

  7. C++转换构造函数和隐式转换函数 ~ 转载

    原文地址: C++转换构造函数和隐式转换函数 用转换构造函数可以将一个指定类型的数据转换为类的对象.但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个Complex类对象转换成doubl ...

  8. C++转换构造函数和隐式转换函数

    今天是第一次听到C++还有个转换构造函数,之前经常见到默认构造函数.拷贝构造函数.析构函数,但是从没听说过转换构造函数,隐式转换函数也是一样,C++的确是够博大精深的,再次叹服!          其 ...

  9. 显示转换explicit和隐式转换implicit

    用户自定义的显示转换和隐式转换 显式转换implicit关键字告诉编译器,在源代码中不必做显示的转型就可以产生调用转换操作符方法的代码. 隐式转换implicit关键字告诉编译器只有当源代码中指定了显 ...

随机推荐

  1. centos6.8系统安装 Hadoop 2.7.3伪分布式集群

    安装 Hadoop 2.7.3 配置ssh免密码登陆 cd ~/.ssh                       # 若没有该目录,请先执行一次ssh localhost ssh-keygen - ...

  2. Spring boot教程mybatis访问MySQL的尝试

    Windows 10家庭中文版,Eclipse,Java 1.8,spring boot 2.1.0,mybatis-spring-boot-starter 1.3.2,com.github.page ...

  3. 560. Subarray Sum Equals K

    Given an array of integers and an integer k, you need to find the total number of continuous subarra ...

  4. PYTHON-操作系统基础-2-练习

    #===============================================# # 1.简述cpu.内存.硬盘的作用# cpu是人的大脑,负责控制全身和运算# 内存是人的记忆,负责 ...

  5. html中子界面与父界面相互操作或传值

    一.在使用iframe的页面,要操作这个iframe里面的DOM元素可以用: contentWindow.contentDocument(测试的时候chrom浏览器,要在服务器环境下) content ...

  6. C++ code:string stream(string流)

    如果有一个文件aaa.txt,有若干行,不知道每行中含有几个整数,要编程输出每行的整数之和,该如何实现? 由于cin>>不能辨别空格与回车的差异,因此只能用getline的方式逐行读入数据 ...

  7. PHP对Url中的汉字进行编码和解码

    有的新手朋友们对于url编码解码这个概念,或许有点陌生.但是如果这么说,当我们在浏览各大网页时,可能发现有的url里有一些特殊符号比如#号,&号,_号或者汉字等等,那么为了符合url的规范,存 ...

  8. Chakra调试笔记 TypedArray

    一.TypedArray类型 TypedArray是漏洞中常见到的结构,手册用法有四 1.new TypedArray(length); //byteLength=length * sizeof(Ty ...

  9. .NetCore下使用Prometheus实现系统监控和警报 (六)进阶Grafana集成自定义收集指标

    Prometheus中包含了很多收集指标,那么我们怎来在Grafana中来使用呢? 接下来我们还是以之前自定义的来演示如图:我们在Prometheus中已经可以看到这个之前我们自定义的类型了 关于Gr ...

  10. POJ 3190 Stall Reservations【贪心】

    POJ 3190 题意: 一些奶牛要在指定的时间内挤牛奶,而一个机器只能同时对一个奶牛工作.给你每头奶牛的指定时间的区间(闭区间),问你最小需要多少机器.思路:先按奶牛要求的时间起始点进行从小到大排序 ...