IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c++系列(3)c++中的函数调用重载模板内联 -> 正文阅读

[C++知识库]c++系列(3)c++中的函数调用重载模板内联

一 概述

本文主要设计c++中的函数相关有效率的机制,关注相比c开始所具备的变化如重载等。

二 备注

三 目录

目录

一 概述

二 备注

三 目录

四 正文

(一)函数调用与默认形参

1 说明

2 代码

(二)函数重载

1 说明

2 代码

3 结果

(三)函数模板

1 说明

2 代码

3 结果

(四)内联函数

1 说明

2 代码

3 结果


四 正文

(一)函数调用与默认形参

1 说明

(1)函数调用,我个人认为函数的引入是为了解决那些可能需要多次解决的问题提高重用性,以及对一个小的部分进行封装,抽象,一个个函数可以看作一个个模块。c++的简单调用与c是比较一致,也额外引入了一些其他共功能。

(2)默认形参即对于一个函数,可以给其形参一个默认值,在无实参时,使用默认值。

2 代码

#include<iostream>

using namespace std;

int add(int x=2,int y=3)
{
    return x+y;
}
int main()
{
    cout<<add(10,20)<<endl;
    cout<<add(30)<<endl;//此时b有默认值,定义是在最右边
    cout<<add()<<endl;
    return 0;
}

3 结果


(二)函数重载

1 说明

函数重载旨在解决函数名相同,而形参不同的问题,如果写好几个浪费,该机制可以自行选择相应形参对应的函数。

2 代码

#include<iostream>

using namespace std;

int add(int a,int b)
{
    return a+b;
}
double add(double a,double b)
{
    return a+b;
}
int main()
{
    cout<<add(20,30)<<endl;
    cout<<add(2.92,15.33)<<endl;
    return 0;
}

3 结果


(三)函数模板

1 说明

函数模板紧接上面的函数重载,目前看是精简化函数重载的仍然需要重复写,而直接以模板的形式给出来,让代码更简洁.

2 代码

#include<iostream>

using namespace std;

template<class T1,class T2>//模板函数相应的关键字

T1 add(T1 x,T2 y)
{
    return x+y;
}

int main()
{
    cout<<add(2,3)<<endl;;
    cout<<add(1.1,2.22)<<endl;
    cout<<add('A',22)<<endl;
    return 0;
}

3 结果

这个输出W的原因之后务必解决


(四)内联函数

1 说明

函数的调用往往都有一个开辟空间,返回值的过程,如果某个函数的本身执行长度不长,又要屡次调用,那肯定浪费时间和空间,举个不恰当的例子,我在工地板状,每次都要去水井那里执行以下挑水的事件,挑水简单,但是停下搬砖,开启挑水模式,走过去这些过程开销太大,如果可以直接办了砖就直接接下来就地挑水就好了.内联机制就是,在编译时,编译器直接将函数代码放到函数调用地方去,顺着执行产生结果.(这有点反着封装函数来的感觉了,归根到底是因为他不长,他频繁被调用)

注意:内联函数要在调用之前实现,以让编译器做出判断.

2 代码

#include<iostream>

using namespace std;

inline int add(int x,int y)
{
      return x+y;
}

int main()
{   int a=2,b=3;
    cout<<add(a,b)<<endl;//cout<<a+b<<endl;
    return 0;
}

3 结果

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:26:28  更:2021-07-31 16:27:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 18:31:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码