博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++学习之重载运算符1
阅读量:4341 次
发布时间:2019-06-07

本文共 1420 字,大约阅读时间需要 4 分钟。

C++除可重载函数之后,还允许定义已有的运算符,这样通过运算符重载可像处理数据使用它们。

先来个代码

1 #include
2 using namespace std; 3 4 class num 5 { 6 public: 7 num(){n=1;} 8 ~num(){} 9 int get() const{
return n;}10 void set(int x){n=x;}11 private:12 int n;13 };14 15 int main()16 {17 num i;18 cout<
<
View Code

编译将提示一个错误:

--------------------Configuration: demo1 - Win32 Debug--------------------

Compiling...
demo.cpp
E:\CCDEMO\demo1\demo.cpp(19) : error C2676: binary '++' : 'class num' does not define this operator or a conversion to a type acceptable to the predefined operator 此处提示没有该类没有重载++这个运算符;

执行 cl.exe 时出错.

demo1.exe - 1 error(s), 0 warning(s)

将代码处:i++ 注释,编译即成功;如何解决以上问题,我们可以使用一函数解决,看以下代码:

#include
using namespace std;class num{public: num(){n=1;} ~num(){} int get() const{return n;} void set(int x){n=x;} void add(){++n;}private: int n;};int main(){ num i; cout<
<

  以上能解决问题,但还没有现实我们所说的C++重载运算符;以下使用运算符重载:

1 #include
2 using namespace std; 3 4 class num 5 { 6 public: 7 num(){n=1;} 8 ~num(){} 9 int get() const{
return n;}10 void set(int x){n=x;}11 void add(){++n;}12 void operator++(){++n;} //此处使用了重载运算符13 private:14 int n;15 };16 17 int main()18 {19 num i;20 cout<
<
View Code

好了。编译一下,没有问题。这就是最简单的运算符重载。

转载于:https://www.cnblogs.com/herojy886/p/4799392.html

你可能感兴趣的文章
“==”运算符与equals()
查看>>
单工、半双工和全双工的定义
查看>>
Hdu【线段树】基础题.cpp
查看>>
时钟系统
查看>>
BiTree
查看>>
5个基于HTML5的加载动画推荐
查看>>
水平权限漏洞的修复方案
查看>>
静态链接与动态链接的区别
查看>>
Android 关于悬浮窗权限的问题
查看>>
如何使用mysql
查看>>
linux下wc命令详解
查看>>
敏捷开发中软件测试团队的职责和产出是什么?
查看>>
在mvc3中使用ffmpeg对上传视频进行截图和转换格式
查看>>
python的字符串内建函数
查看>>
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
ajax跨域,携带cookie
查看>>
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>