博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【C++自我精讲】基础系列三 重载
阅读量:4677 次
发布时间:2019-06-09

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

【C++自我精讲】基础系列三 重载
0
前言

分二部分:函数重载,操作符重载。

1
函数重载

函数重载:指在同一名字空间中,函数名称相同,参数类型、顺序或数量不同的一类函数,同一函数名的函数能完成不同功能。

//非函数重载,只是返回值不一样void Fun(int i);int  Fun(int i);//非函数重载,不在同一名字空间namespace A{    int Add(int i, int j); };namespace B{    float Add(float i, float j); };//函数重载int Add(int i, int j); float Add(float i, float j);

重命名机制:函数重载的名称都是一模一样的,C++编译器就是通过重命名机制来区别这些同名函数的(不同的C++编译器,重命名机制可能不一样)。

//重命名机制void Fun(int i, double j);  //c++编译器把函数名Fun其实重命名为_Fun_int_doublevoid Fun(double i, int j);  //c++编译器把函数名Fun其实重命名为_Fun_double_int

C++调用C 函数:C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。

  void Fun(int i, ini j); C 编译器编译后的名字为_Fun。

  void Fun(int i, int j); C++编译器编译后的名字为_Fun_int_int。

  C 编译器和C++编译器产生的名字不同,所以C++不能直接调用C 函数。用extern“C”解决。

extern "C"{    //头文件    #include “header.h”      //函数    void Fun(int i, int j);}
2
操作符重载

操作符重载:指用关键字operator加运算符表示的函数。可以把其理解为特殊形式的函数,运算符本身是函数名。

int Add(int i, int j);       //普通函数int operator+(int i, int j); //+运算符函数//用法int k = Add(10, 20);int m = 10 + 20;

 操作符重载规则:

 

 ps:后面讲到类时再结合例子讲解下操作符重载为成员函数。

转载于:https://www.cnblogs.com/joinclear/p/3097993.html

你可能感兴趣的文章
java基础之区块操作
查看>>
「luogu2336」[SCOI2012]喵星球上的点名
查看>>
205 Isomorphic Strings
查看>>
318. Maximum Product of Word Lengths java solutions
查看>>
[bzoj1038] [ZJOI2008]瞭望塔
查看>>
远程桌面 习惯性注销连接,出事了
查看>>
软件工程基本概念
查看>>
MYSQL复习笔记5-select-from-where子句
查看>>
linux 如何释放缓存
查看>>
经典,程序员笑话
查看>>
Linux 抓取网站命令
查看>>
浪叫兽的自我介绍 (完整版) 讲述一段如何进入大数据行业
查看>>
Qt ui在程序中的使用
查看>>
datatables.js 简单使用--弹出编辑框或添加数据框
查看>>
前端--3、jQuery
查看>>
最小化的 Google Analytics 代码
查看>>
服务器监控相关
查看>>
转: 环信联合创始人:App主流反垃圾服务难点和技术实现全解析
查看>>
关于类型转换这件事
查看>>
[转]30分钟,让你成为一个更好的程序员
查看>>