专栏首页leoayC++基础系列の函数

C++基础系列の函数

C++基础系列の函数

前几天我们讲了一下C++中的函数,不过还有一部分没有讲完,今天我们继续讨论一下。如果你没有看过那篇文章,可以点击右边的链接前往:C++の函数

返回值

上一篇文章我们主要说了函数的参数列表,那么函数除了有参数列表外,还有另一个要素,返回值。如果有返回值的话,又返回我们想要返回的数据,如果没有的话就用void。这个跟C中一样,没什么需要强调的,那么有的的朋友可能会想到我们之前介绍过引用和指针了,它们可以作为函数的返回值吗?

这里需要做个区分,如果引用或者指针在函数体外,也就是说不是这个函数的局部变量的话,它们是可以作为返回值的,但是如果引用或指针是在这个函数中定义的话,也就是局部变量的话,就不能作为函数的返回值。

原因很简单,因为函数作为最小的执行单元,在执行完后会被释放掉,函数中所有申请的非静态资源均要被释放,如果这个引用或指针作为返回值的话,是不能将值传出来的。

函数重载

如果朋友们有面向对象编程经验的话,那么一定听说过函数重载这个概念,这个在java中叫方法重载,其实本质上是一样的。所谓函数重载,就是可以在同一个源文件中定义多个函数名相同的函数,但是它们需要有不同的参数列表。我们看一下下面的代码:

void print(const char *cp);
void print(const int *beg, const int *end);
void print(const int ia[], size_t size);

可以看到上面有三个print函数,但是它们的参数列表不同,代码在调用函数时,编译器可以根据参数列表推断出我们想要调用的函数。

今天的函数部分就到这里,明天我们继续讨论剩下两个比较重要的概念“内联函数”和“函数指针”。

本文分享自微信公众号 - leoay(leoay_Do),作者:leoay

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++の函数——内联函数&函数指针

    我们先看一下内联函数。内联函数也是C++中的一个重要特性。所谓内联函数,其实本质上也是一种函数,在形式上的表现就是在普通函数前面加上关键字"inline",然后...

    leoay
  • C++の容器vector

    上一篇文章C++のstring类,我们讲了一下C++中的string类,简单梳理了string对象的创建方式,数据操作等,今天我们继续介绍C++中另外一个概念v...

    leoay
  • C++の函数

    说到函数,我们应该比较清楚了,不论哪一门语言都有这个概念的,其实本质上就是讲我们之前介绍的语句,表达式等封装起来,形成一个功能单元。在C/C++中它也是程序执行...

    leoay
  • Python 基础 高阶函数

    python 把函数作为参数   如果传入abs 作为参数     def add(x,y,y):       return f(x) + f(y)     a...

    用户1197315
  • 第二章(1.6)Python基础知识(高阶函数)

    定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

    两只橙
  • Python学习笔记(五)——函数式编程

    成功!说明变量f现在已经指向了abs函数本身。直接调用abs()函数和调用变量f()完全相同。

    后端技术漫谈
  • Python函数式编程-高阶函数、匿名函数、装饰器、偏函数

    本篇文章我们来介绍下Python函数式编程的知识。最主要的一点,Python中的函数是对象,可以复制给变量!好了,我们来介绍几个Python函数式编程中的要点,...

    QQ1622479435
  • 每天 3 分钟,小闫带你学 Python(二十一)

    When you see a person without a smile, give them one of yours.

    小闫同学啊
  • Python 函数进阶

    高阶函数是至少满足下面一个条件的函数 # 接受一个或多个函数作为参数 # 输...

    江小白
  • 护网杯pwn——huwang超详细wp

    比赛结束快一个星期了,复现了一下这道题,借鉴了一下网上的wp发现大佬们写的都很简略,所以这里写一个详细的wp供小白们学习。

    安恒网络空间安全讲武堂

扫码关注云+社区

领取腾讯云代金券