函数的重载
函数重载: 就是静态多态的一种设计方式
实现原理:
c++ 在编译的时候会 《自动检测》 ,函数,参数列表, 对于各个不同的参数进行函数的别名化,来产生这个函数的多种状态,然后根据用户传入的参数,来确定要执行那个 状态的函数。
函数重载的注意事项 1.函数重载必须要函数名一致
2.函数重载的依据是参数列表的不同 (类型,个数)
3.返回值类型不能作为重载的依据
4.调用重载函数的时候,需要注意调用的 歧义
void func(int a) ->func_int
void func(short b) ->func_short
void func(char c) ->func_char
int a=100;
func(a);
char a='A';
func(a);
#include <iostream>
using namespace std;
void func(int a)
{
cout << "func int a" << endl;
}
void func(char a)
{
cout << "func char a" << endl;
}
void func(short a)
{
cout << "func short a" << endl;
}
int main()
{
int a;
char b;
short c;
func(a);
func(b);
func(c);
}
函数的默认参数
默认参数: 在c++ 中定义函数的时候,可以使用默认参数进行函数的定义。
作用:简化函数的调用
规则:
默认参数的填写顺序: 必须从 右 往 左 依次填写 。
带默认参数的函数赋值顺序: 从 左 往 右 依次填写。
例子
返回值类型 函数名(数据类型 变量=值) {
}
例子: int func(int a=100) { cout << a << endl; }
//调用 func(); //使用默认值 100 func(200); //使用用户传递的参数
#include <iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
using namespace std;
int my_open(const char *pathname="./my.txt",int flags=O_RDWR|O_CREAT|O_TRUNC,mode_t mode=0777)
{
int fd = open(pathname,flags,mode);
if(fd < 0)
{
cerr << "文件创建失败" << endl;
}
else
{
cout << "文件创建成功" << endl;
}
}
int main()
{
my_open();
my_open("my1.txt");
}
|