c++ - 我不确定为什么代码没有运行,它在编译时抛出一个错误,说它无法找到 PrintArray()
问题描述
int main()
{
const char arr[][5] = {{ 'H','u','g','o','\0' },{'h','i'}};
printArray(arr, 2, 5);
}
void printArray(const char arr[], int size)
{
for(int i=0;i<size;i++)
{
cout << arr[i];
}
cout << endl;
}
void printArray(const char arr[][SIZE], int rows, int cols)
{ char temp[cols];
for(int i=0;i<rows;i++)
{char temp[cols];
for(int j=0;j<cols;j++)
{
temp[j]=arr[i][j];
}
printArray(temp,cols);
}
}
该代码旨在逐行打印二维数组。它应该超载printArray();
不知道为什么它不起作用,一切似乎都很好。
错误消息:在这一行没有调用“printArray”的匹配函数 printArray(arr, 2, 5);
解决方案
您可能面临 C++ 编译器的一种行为,即声明顺序。基本上,您的main()
函数尝试调用尚未定义的printArray
函数。通过重新排序定义,函数调用将起作用:https ://onlinegdb.com/r1jMt9d0r 。
void printArray(const char arr[], int size)
{
for(int i=0;i<size;i++)
{
cout << arr[i];
}
cout << endl;
}
void printArray(const char arr[][SIZE], int rows, int cols)
{ char temp[cols];
for(int i=0;i<rows;i++)
{char temp[cols];
for(int j=0;j<cols;j++)
{
temp[j]=arr[i][j];
}
printArray(temp,cols);
}
}
int main()
{
const char arr[][5] = {{ 'H','u','g','o','\0' },{'h','i'}};
printArray(arr, 2, 5);
}
这个问题实际上已经被问过了,但您可能无法搜索解决方案。
推荐阅读
- android - 如何在 android 架构组件中使用 RxJava 而不是 LiveData?
- php - ZF2 TableGateway 查询返回空结果集,适配器查询有效
- architecture - 处理微服务架构中的枚举
- c# - Aurelia 浏览器控制台错误 - POST 请求 - 对预检请求的响应未通过访问控制检查
- c# - 下拉列表未找到正确的值
- python - Python - 如何停止循环
- json - Ruby API 调用从复杂的 json 中获取数据
- selenium - 选择选项车梅赛德斯
- php - PHP Array - 删除空元素,仅获取填充字符串
- github - 通过指定多个 Id 获取 GitHub 问题列表