为什么编译器调用第一个重载函数而不是第二个
Why compiler is calling first overloaded function not second one?
考虑以下程序。
#include <iostream>
void fun(const char a[]) {
std::cout<<"function 1n";
std::cout<<a<<'n';
}
void fun(char *a) {
std::cout<<"function 2n";
std::cout<<a<<'n';
}
int main() {
fun("string");
}
我应该在程序中做什么更改,以便调用第二个函数而不是第一个函数?
当你传入"string"时你就传入了一个const char *
你可以做的是声明一个char *并设置它的值,然后传递给第二个函数,它会转到第二个函数。
"string"是一个const char*,它将转到第一个函数
相关文章:
- 等待整个 omp 块完成,然后再调用第二个函数
- 使第二个类的构造函数成为第一个类中的友元函数
- 第二个常量在运算符函数中做什么?
- 如何成功地将函数对象(或lambda)传递给trackbar回调的第二个参数(void*)
- C++使用第二个函数获取字符数组的长度
- 实现上下文切换 - 第二个函数不再运行
- 对于第二个本机函数,显示不舒适的LinkError:未针对.stringfromjni2()找到实现
- 第二个值在 pinvoke 期间未传递给C++函数
- 返回函数模板的类型C++作为第二个模板参数
- 两种类型的定义构造函数有什么区别?第一个使用":",第二个用大括号(如函数)定义它
- CIN.IGNORE删除第一个字符的第二次函数被调用
- C++ "overloading"第二个默认函数参数
- 如何将 char 类型数组传递给函数并将第一个字符数组复制到第二个图表数组并使用 c++ 进行比较
- reduce函数的第二个rhs参数中tbb::parallel_reduce:constness的Lambda形式
- 为什么这行不通?第二个函数无法注册?
- 为什么构造函数没有得到对数组中第二个对象的调用
- C++ 嵌套数组[][] 在第二个函数中为空
- 递归可变参数模板函数调用第二个参数类型的指针"loses"指针
- 当我超过第一个 getline() 的输入中的数组大小时,第二个 getline 或其他输入函数不起作用
- 调用第二个*函数时编程软锁定