函数重载

我们明白函数重载的作用就可以明白函数重载该如何写了。简单的说函数重载是为了实现某种意义上的多态,这种多态呢?简单点讲,同一个函数,传入不同的参数,有不同的表现。所以我们知道函数重载至少有两个函数,并且函数名字需要一样。因为要有不同的不同的参数,所以形参列表不能完全一样。我们知道一个函数有三部分,返回值,函数名,传入值。现在函数名一样,传入值不一样,那么返回值呢?根据定义知道返回值一样不一样都无所谓,因为当我们调用一个函数时不会去理会它的返回值。因此我们知道两个函数只有返回值得类型不一样,不算是函数重载,而是函数的重复定义。

#include <iostream>
using namespace std;class Print{public:void print(){cout << "i am print()" << endl;}void print(int i){cout << "i am print("<< i << ")" << endl;}void print(char c){cout << "i am print(" << c << ")" << endl;}
};int main()
{Print p;p.print();p.print(3);p.print('c');return 0;
}

运行结果:

i am print()
i am print(3)
i am print(c)

其实拷贝构造函数和构造函数,就属于函数重载。

运算符重载

运算符重载,先说一下有神马作用吧!例如我们重载‘+’运算符,‘+’普通来说只能对两个数进行加法运算,但我们想直接对两个对象,或者两个矩阵进行加法运算,使用普通的加法无法满足我们的需求,所以需要重载运算符,然后定义自己的加法运算。
重载运算符的定义形式:

type operator‘重载的运算符’(const type&  a,const type& b)

看一下具体的代码:

#include <iostream>
using namespace std;class Box{public:int width;int height;Box operator+(const Box& a){Box box;box.width = this->width + a.width;box.height = this->height + a.height;return box;}
};int main()
{Box box1,box2,box3;box1.width = 10;box1.height = 20;box2.width = 3;box2.height = 5;box3 = box1+box2;cout << "box1(width,height):(" <<box1.width << ','<<box1.height << ")" << endl;cout << "box2(width,height):(" <<box2.width << ','<<box2.height << ")" << endl;cout << "box3(width,height):(" <<box3.width << ','<<box3.height << ")" << endl;return 0;
}

运行结果:

box1(width,height):(10,20)
box2(width,height):(3,5)
box3(width,height):(13,25)

C++重载函数和重载运算符相关推荐

  1. 重载函数和重载运算符

    C++允许在同一个作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载. 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但他们的参数列表和定义(实现)不相 ...

  2. C++:运算符重载函数之成员运算符重载函数

    5.2.3 成员运算符重载函数 在C++中可以把运算符重载函数定义为某个类的成员函数,称之为成员运算符重载函数. 1. 定义成员运算符重载函数的语法形式 (1)在类的内部,定义成员运算符重载函数的格式 ...

  3. C++ 重载函数和重载运算符

    C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载. 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不 ...

  4. C++——重载运算符和重载函数

    重载运算符和重载函数 C++ 中的函数重载 C++ 中的运算符重载 C++ 一元运算符重载 C++ 二元运算符重载 C++ 关系运算符重载 C++ 输入/输出运算符重载 C++ 赋值运算符重载 C++ ...

  5. C++ 重载运算符和重载函数(一)

    C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载. 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不 ...

  6. 面向对象编程(三):重载运算符和重载函数

    C++ 重载运算符和重载函数 C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载. 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是 ...

  7. C++基础教程之重载运算符和重载函数

    C++ 重载运算符和重载函数 C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载. 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是 ...

  8. C++:运算符重载与类的赋值运算符重载函数

    目录 章节知识架构 一.运算符重载 1. 运算符重载的基本概念 代码段1 2.关于运算符重载的重要语法细则 二.运算符重载在类中的使用 三.类的默认成员函数:=重载函数(赋值运算符重载) 1.自定义= ...

  9. C++ | C++ 重载运算符和重载函数

    文章目录 C++ | C++ 重载运算符和重载函数 C++ 重载运算符和重载函数 C++ 中的函数重载 实例1: C++ 中的运算符重载 实例2: 可重载运算符/不可重载运算符 运算符重载实例 运算符 ...

最新文章

  1. 添加水印(文字and图片)
  2. tomcat设置https访问
  3. Oracle数据类型及存储方式——字符类型篇
  4. 手动排除fbiytty和vcxlcph病毒的干扰
  5. qt+visa实现程控实例
  6. 【渝粤教育】21秋期末考试个人与团队管理10257k2
  7. zxr10交换机配置手册vlan_中兴ZXR10 G系列交换机SVLAN使用指导
  8. 佳铁精雕机连接电脑设置_佳铁精雕机在程式里怎么更改G57之后的坐标
  9. MOS晶体管单元电路的最佳二维公共质心布局生成
  10. 打卡国潮新风尚@东莞隐贤山庄#玩转主题乐园#
  11. scholarscope不显示影响因子_你的pubmed又不能显示影响因子了,因为 ……
  12. xp计算机无法关机,xp系统不能关机解决方法【图文教程】
  13. 80年代的人为什么不结婚
  14. 把握数字经济时代新机遇:银行业加快推进数字化转型
  15. 云桌面和PC之间,存在什么差别
  16. margin与padding的区别
  17. ACM--过沼泽--模拟--HDOJ 5477--A Sweet Journey
  18. 【控制工程】啥是控制工程?拉开控制工程的帷幕
  19. 新建银行账户类,实现基本的属性和方法。
  20. 写给20岁读者的一些人生建议

热门文章

  1. 作者:吴章生(1980-),男,中国科学院计算机网络信息中心工程师;张杨(1982- ),男,中国科学院计算机网络信息中心工程师...
  2. 《大数据》第1期“专题”——大数据机器学习系统研究进展(上)
  3. 【计算机科学基础】VonNeumann体系结构
  4. 【Servlet】Servlet声明配置
  5. 【算法分析与设计】证明插入排序的正确性
  6. 你知道考的是平方数吗(记洛谷P1876题RE+WA的经历,Java语言描述)
  7. 【数据结构与算法】基础数据结构与算法大全
  8. activiti-explorer 启动报错 Error creating bean with name 'demoDataConfiguration'
  9. 2009 CCTV体坛风云人物颁奖盛典,精彩语录
  10. LeetCode:二叉树的非递归中序遍历