• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > c++运算符重载基础知识详解

c++运算符重载基础知识详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++运算符重载,c++赋值运算符重载,c++运算符重载实例,c++不能重载的运算符,运算符重载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

实际上,很多C++运算符已经被重载。eg:将*运算符用于地址,将得到存储在这个地址中的值,将他用于2个数字时,得到的将是他们的乘积。C++根据操作数的数目和类型来决定采用哪种操作。

C++允许将运算符重载扩展到用户定义的类型。例如,允许使用+将两个对象相加。编译器将根据操作数的数目和类型决定使用加法定义。运算符重载可以使代码看起来更自然。例如,将2个数组相加是一种常见的运算。通常,需要使用下面这样的for循环来实现:

但在C++中,可以定义一个表示数组的类,并重载+运算符,于是便有这样的语句:

total = arr1+arr2;
一个计算时间的例子
mytime.h

int_tmain(intargc,_TCHAR*argv[])
{
//比导入整个名称空间更经济
usingstd::cout;
usingstd::endl;

Timeplanning;
Timecoding(2,50);
Timefixing(5,55);
Timetotal;
cout<<"planningtime=";
planning.Show();
cout<<endl;
cout<<"codingtime=";
coding.Show();
cout<<endl;
cout<<"fixingtime=";
fixing.Show();
cout<<endl;
total=coding.Sum(fixing);
cout<<"coding.Sum(fixing)=";
total.Show();
cout<<endl;
total=coding+fixing;
cout<<"coding+fixing=";
total.Show();
cout<<endl;
getchar();
return0;
}
</div>

调用

int_tmain(intargc,_TCHAR*argv[])
{
//比导入整个名称空间更经济
usingstd::cout;
usingstd::endl;

Timeplanning;
Timecoding(2,50);
Timefixing(5,55);
Timetotal;
cout<<"planningtime=";
planning.Show();
cout<<endl;
cout<<"codingtime=";
coding.Show();
cout<<endl;
cout<<"fixingtime=";
fixing.Show();
cout<<endl;
total=coding.Sum(fixing);
cout<<"coding.Sum(fixing)=";
total.Show();
cout<<endl;
total=coding+fixing;
cout<<"coding+fixing=";
total.Show();
cout<<endl;
getchar();
return0;
}
</div>

执行结果

重点讲解
1.sum函数中将参数声明为引用,可以提高运行效率,节省内存

2.sum函数中,返回值不能是引用。因为sum对象是局部变量,在函数结束时将被删除,因此引用将指向一个不存在的对象。使用返回类型Time意味着在删除sum之前构造他的拷贝,调用函数将得到他的拷贝。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++ 中重载和运算符重载加号实现矩阵相加实例代码
  • 有关C++中类类型转换操作符总结(必看篇)
  • C++中求余运算符(%)示例详解
  • 基于C++中覆盖,重载,隐藏的一点重要说明
  • C++中运算符 &和&&、|和|| 的详解及区别
  • 深入解析C++编程中的运算符重载
  • 讲解C++编程中Address-of运算符&的作用及用法
  • 深入解析C++编程中范围解析运算符的作用及使用
  • 深入解析C++编程中__alignof 与__uuidof运算符的使用
  • 详解C++编程中的单目运算符重载与双目运算符重载

相关文章

  • 2017-05-28bmp 缩放代码(BMP位图任意放大 和缩小)
  • 2017-05-28C程序读取键盘码的方法
  • 2017-05-28使用C/C++语言生成一个随机迷宫游戏
  • 2017-05-28深入探讨POJ 2312 Battle City 优先队列+BFS
  • 2017-05-28C语言中结构体偏移及结构体成员变量访问方式的问题讨论
  • 2017-05-28简单了解C语言中直接插入排序与直接选择排序实现
  • 2017-05-28C语言使用普通循环方法和递归求斐波那契序列示例代码
  • 2022-04-30C语言fscanf和fprintf函数的用法详解(格式化读写文件)
  • 2017-05-28VC小技巧汇总之对话框技巧
  • 2022-04-30C语言共用体(C语言union用法)详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • OnSize、OnSizing和OnGetMinMaxInfo区别分析
    • 详解C语言中的函数、数组与指针
    • C基础 redis缓存访问详解
    • C++判断pe文件实例
    • 详解C语言中scanf函数使用的一些注意点
    • 完全掌握C++编程中构造函数使用的超级学习教程
    • C语言一维数组初步学习笔记
    • c语言随机数函数示例
    • 详解C语言求两个数的最大公约数及最小公倍数的方法
    • C语言实现单链表逆序与逆序输出实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有