C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

Posted credream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++_函数_函数的占位参数_函数重载---C++语言工作笔记034相关的知识,希望对你有一定的参考价值。

然后我们再来看一下函数的占位参数

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

可以看到上面是实例,实际上,这个占位的参数,

就是占位置的作用.可以看到只写一个数据类型就可以.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

那么什么是占位参数呢,其实就是用来占位用的,

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

上面是一个普通的函数.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

我们给他加上第二个参数int,可以看到只写了一个参数的类型,没写名字

调用的时候,需要给第二个参数传入一个值,可以看到只要是int类型的值就可以了.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

执行可以看到结果.也是正常可以用的

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

上面对占位参数,做了一个总结.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

但是这个占位参数,我们知道他存在,但是怎么去用呢

可以看到是第二个这个int参数,他没有变量来接收他

所以也没法使用,但是后面的课程我们会说他怎么用,实际上他是有用的.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

而且,再看一个,占位参数还可以有默认值,可以看到

上面我们给占位参数写了一个默认值,这样的话,

我们在调用的时候,可以就传入占位参数的值了.


C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

然后我们再去看函数的重载,这个在java和其他面向对象语言中都是有的.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

可以看到函数的重载函数,名称一样.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

可以看到在c++中,如果我们有两个一样名称,参数列表一样的函数,不报错

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

但是执行起来就报错.是不允许有两个一模一样的函数的

因为有两个一模一样的函数,编译器就不知道调用哪个了.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

然后可以看到函数重载在c++中需要满足的3个条件.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

我们挨个去试试,首先,

函数名称一样,函数参数不一样

func();

func(int a);

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

可以看到可以正常调用,不写参数的话,他自动调用的,不带参数的函数


C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

写了参数的话他自动调用的带有参数的函数,提高复用性

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

然后还可以参数的类型不一样,也可以重载函数

可以看到上面我们又写了一个func函数,然后把参数改成了double类型的.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

再去调用的时候写一个,3.14double类型的值,他就自动调用这个double类型参数的函数去了.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

然后可以看到上面两个函数,名字都一样,但是

参数的类型的顺序不一样,这样也可以是函数重载.

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

去调用试试,如果第一个参数是整型,第二个参数是double类型,可以调用第一个函数.int a,double b的

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034

如果第一个参数是double,第二个参数是int类型,可以调用第一个函数.doublea,int b的

C++_函数_函数的占位参数_函数重载---C++语言工作笔记034


可以看到不可以修改函数的返回值的类型,做为函数的重载,因为

返回值的类型,虽然变了,但是函数的名称和参数还是一样的,这样

编译器依然不知道去选择哪个函数调用.

这个注意就可以了.














以上是关于C++_函数_函数的占位参数_函数重载---C++语言工作笔记034的主要内容,如果未能解决你的问题,请参考以下文章

c++sort函数“std::_Debug_range2”: 2 个重载中没有一个可以转换所有参数类型 错误

c++--函数重载

Lua_函数_可变参数

成员函数与内联函数

C++02_类与对象(中)

Typescript核心篇——函数_this指向—重载—泛型