c++ 运算符重载(简单易懂)
c++ 运算符重载:
您可以重定义或重载大部分 C++ 内置的运算符。这样,您就能使用自定义类型的运算符。重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。
//重载 + 运算符 , 把两个 Box 相加Box operator+(const Box b)
demo:
#include <iostream>
class Box {public://求面积double getVolume() {return length * width * height;}void setLength(double len) {this->length = len;}void setWidth(double width) {this->width = width;}void setHeight(double height) {this->height = height;}//重载 + 运算符 , 把两个 Box 相加Box operator+(const Box b) {Box box_;box_.length = this->length + b.length;box_.height = this->height + b.height;box_.width = this->width + b.width;return box_;}//重载 - 运算符 , 把两个 Box 相减 Box operator-(const Box b) {Box box_;box_.length = this->length - b.length;box_.width = this->width - b.width;box_.height = this->height - b.height;return box_;}private:double length;double width;double height;};int main()
{Box a;a.setHeight(5);a.setWidth(5);a.setLength(2);std::cout << "a. volume:" << a.getVolume() << std::endl;Box b;b.setHeight(5);b.setWidth(5);b.setLength(5);std::cout << "b. volume:" << b.getVolume() << std::endl;Box c;c = a + b;std::cout << "c. volume:" << c.getVolume() << std::endl;Box d;d = b - a;std::cout << "d. volume:" << d.getVolume() << std::endl;system("pause");return 0;
}
c++ 支持重载的运算符:
不支持重载的运算符:
98年菜鸡一枚,请大佬们多多照顾!
c++ 运算符重载(简单易懂)相关推荐
- c++复习(2)拷贝构造函数与运算符重载
目录 前言 拷贝构造函数 函数定义 调用 缺省(默认)的拷贝构造函数 -- 浅拷贝 涉及指针或者内存操作 用char * 用char[] 用string 自己写的拷贝构造函数 类中数据含有指针 类中含 ...
- 类模板与运算符重载(一个简单的例子)
类模板与运算符重载(一个简单的例子) 标签(空格分隔): C++ 算法竞赛 下面是一段简单的代码,表示我们建立了一个类模板Vector,可以看做是对STL中vector的简单实现. 为了让这个Vect ...
- C++ 学习 ::【基础篇:17】:C++ 类与对象:运算符重载介绍、运算符重载函数(类内与类外区别)写法及简单设计实现
本系列 C++ 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C++ 学习系列将分为三个阶段:基础篇.STL 篇.高阶数据结构与算法篇,相关重点内容如下: 基础篇:类与对象(涉及C++的三大特 ...
- 第11章 运算符重载与约定
第11章 运算符重载与约定 我们在<第2章 Kotlin 语法基础>中已经学习过关于运算符的相关内容,本章将继续深入探讨Kotlin中的运算符的重载与约定. 通常一门编程语言中都会内置预定 ...
- C++深拷贝与浅拷贝的区别-简单易懂
C++深拷贝与浅拷贝的区别-简单易懂 介绍 浅拷贝就比如像引用类型,而深拷贝就比如值类型. 浅拷贝是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同).对其中任何一个对象的改动都会影响另 ...
- c++运算符重载总结
c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁.高效.在c++中不止函数可以重载,运算符也可以重载.由于一般数据类型间的运算符没有重载的必要, ...
- C++中运算符重载需要遵循的规则
一.C++中运算符重载需要遵循的规则 1.并不是所有的运算符都可以重载.能够重载的运算符包括: + - * / % ^ & | ~ ! = < > += -= *= /= %= ^ ...
- Java为什么不提供运算符重载?
从C ++到Java,一个显而易见的未解决问题是Java为什么不包括运算符重载? 不是Complex a, b, c; a = b + c;吗Complex a, b, c; a = b + c; C ...
- 为什么 Java 不支持运算符重载?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | Yujiaao 来源 | https://se ...
- 复习笔记(六)——C++运算符重载(难点)
运算符重载 运算符重载的概念 运算符重载类似于函数重载. 运算符重载允许把标准运算符(如+.-.*.<等)应用于定制数据类型的对象. 什么情况下需要考虑运算符重载? 需要用运算符操作自定义类的对 ...
最新文章
- java a标签正则_正则表达式:java中婚配HTML中a标签中的中文字符
- 推荐一款好工具:16进制字节搜索工具 C#的效率
- SpringBoot中使用 Druid 数据库连接池, 后台SQL监控无效
- 原python基础概念整理_Python从头学之基础概念整理
- 实时对讲是怎么发起的_QQ可实时显示手机电量并展示给好友 近半投票者支持该功能...
- python 计算累计人数_免费Python入门课程,看到就是赚到~
- FIND_IN_SET 精确查找
- 魅族Flyme5.x以上系统INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- ASP.NET 缓存 Cache
- Linux(ubuntu)——FTP服务器
- 昨天晚上的总结--人跟人的区别在于想的多少吧
- 京东程序员回应“被猝死”;淘宝特价版已提交微信小程序;苹果 M1 单核性能勇超 Intel 11 代 i7|极客头条...
- android沉浸模式代码,Android沉浸式的两种方法
- Oracle数据库中NOLOGGING和FORCE LOGGING
- vue事件发射与接收(可实现页面传值和非父子组件传值)
- 脑力大挑战,1分钟 Serverless 部署“线上魔方”赢魔方
- 循迹小车三个感应c语言程序,循迹小车的C语言程序(带注释)
- Qt之QThread介绍(常用接口及实现、自动释放内存、关闭窗口时停止线程运行、同步互斥)
- html网页随机抽奖怎么制作,html简单易懂的随机抽奖
- Ember.js 入门指南 (一)