1 函数重载 用一个函数名定义不同的函数
当函数名和不同的参数搭配时函数的含义不同
2 函数重载的标准
参数个数不同
参数类型不同
参数顺序不同
3 函数返回值不是函数重载的判断标准
#include<iostream>
using namespace std;
void myPrint(int a) {
cout << "a=" << a << endl;
}
void myPrint(int a, int b) {
cout << "a=" << a << endl;
cout << "b=" << b << endl;
}
// 返回值不同不是重载
//int myPrint(int a, int b) {
// cout << "a=" << a << endl;
// cout << "b=" << b << endl;
// return 0;
//}
void myPrint(const char* a) {
cout << "a=" << a << endl;
}
void main() {
myPrint(1);
myPrint("abcdd");
myPrint(1, 2);
}
函数重载和默认函数参数不能放一起
函数重载和函数指针放一起
void myfunc(int a) {
cout << "a=" << a << endl;
}
void myfunc(const char* a) {
cout << "a=" << a << endl;
}
void myfunc(int a, int b) {
cout << "a=" << a << endl;
cout << "b=" << b << endl;
}
// 函数指针
// 声明一个函数类型
// void myfunc(int a, int b) 定义该类型函数
typedef void (myTypeFunc)(int a, int b); // 定义函数指针
//myTypeFunc* myfuncp = NULL;
// 声明一个函数指针类型
typedef void (*myPTypeFunc)(int a, int b);
//myPTypeFunc fp = NULL; 通过 函数指针类型定义了一个函数指针
// 定义一个函数指针 变量
void (*myVarPFunc)(int a, int b);
//
void main() {
myPTypeFunc fp; // 定义了一个函数指针变量
fp = myfunc; // 会对myfunc进行严格匹配,找到正确的值
fp(1,2);
}