c++最强大的机制重载
void MyCout(int num)
{
printf("%d", num);
}
void MyCout(char c)
{
printf("%c", c);
}
..........
int mian()
{
MyCout('c');
MyCout(1');
return 0
}
首先了解一下重载的定义
重载 : 函数名相同 传递的参数不相同
那么他怎么实现 不会被编译器任务是重复定义呢?
那就要说说 c++的粉碎机制
命名粉碎 - - 比如MyCout(char c) 直接命名为 myCout@char (当然c++的命名粉碎不见得是这么简洁可能会更加的复杂)
来实现 重载
查找 匹配的过程
精准匹配 int ->int
提升匹配 是规程 char->int float ->double(隐式转换)
类型转换匹配 int ->unsigned int 反之是不行的
当匹配的规则冲突时,当多个匹配的时候,会出现二义性 编译器会傻掉
那么能不能让他不是自动命名粉碎 那么就要调用 c 的编译模式
extern "c"