函数调用出现问题
trouble with function calling
我有三个数组:一个字符串、一个整数和一个双精度。我需要通过从主函数调用它们到另一个函数来输出它们的内容。当我尝试构建程序时,显示员工信息出现"找不到标识符"的错误。这是我的代码:
#include <iostream>
#include <string>
using namespace std;
const int numEmp = 5;
string names [numEmp];
int ages [numEmp];
double salaries [numEmp];
int main () {
const int numEmp = 5;
string names [numEmp];
int ages [numEmp];
double salaries [numEmp];
for (int i = 0; i < numEmp; i++) {
cout << "Enter Employee #" << i+1 << " Name: ";
cin >> names [i];
cout << "Enter Employee #" << i+1 << " Age: ";
cin >> ages [i];
cout << "Enter Employee #" << i+1 << " Salary: ";
cin >> salaries [i];
}
displayEmployeeInformation (names, ages, salaries, 5);
getchar();
getchar();
return 0;
}
int displayEmployeeInformation (string names [], int ages [], double salaries [], int size) {
for (int x = 0; x < numEmp; x++) {
cout << "Employee #" << x+1 << " Name: " << names [x] << ", Age: " << ages [x] << ", Salary: " << salaries [x];
}
return 0;
}
您需要为函数添加函数原型。把这条线
int displayEmployeeInformation (string names [], int ages [], double salaries [], int size);
以上int main()
.
或者,将整个函数定义放在 int main()
以上。
正如拔示巴在一篇很好的回答中已经指出的那样,将函数定义放在main
上面或声明一个函数原型。
我还认为您的函数返回类型可能会void
,因为您没有对返回的值执行任何操作:
void displayEmployeeInformation(string names [], int ages [],
double salaries [], int size) {
for (int x = 0; x < numEmp; x++) {
cout << "Employee #" << x+1 << " Name: " << names [x]
<< ", Age: " << ages [x] << ", Salary: " << salaries [x];
}
}
首先要考虑到您定义了两次具有相同名称的数组:在全局命名空间中和在函数 main 的块范围内
//...
const int numEmp = 5;
string names [numEmp];
int ages [numEmp];
double salaries [numEmp];
int main () {
const int numEmp = 5;
string names [numEmp];
int ages [numEmp];
double salaries [numEmp];
/...
您可以勇敢地删除全局命名空间中的定义:)
对于函数调用,则函数声明应出现在函数使用之前。
您可以将函数声明放在 main 之前或 main 内部,但在任何情况下都放在函数调用之前。例如
int displayEmployeeInformation (string names [], int ages [], double salaries [], int size);
int main () {
此外,该函数也可以被贴花为具有 void 类型,因为返回的值没有很大的意义。
该函数可以声明为
void displayEmployeeInformation ( const string names [], const int ages [], const double salaries [], int size);
因此,最好定义一个结构数组,该数组将包含姓名,年龄和薪水的数据成员。
相关文章:
- 将值推送到 getter 函数调用的列表中时出现问题
- 在C++中实现类似 python "map"函数的问题:调用类成员函数
- 使用另一个函数调用一个函数(都在类中)时出现问题.没有错误代码C++
- 头文件会导致函数调用后原始数组出现问题
- OVerload函数调用问题
- 尝试构造包装器测量函数调用时间时出现问题
- C++ 嵌套构造函数调用问题
- 构造函数调用问题
- 将C++中涉及数组的函数调用转换为C#时出现问题
- 如何修复对strstr没有匹配函数调用的问题
- 推导函数调用时出现歧义问题
- 函数调用出现问题
- C ++要么是函数调用的循环问题
- 第一次制作了一个跨越几个类的程序,但我在函数调用方面遇到了问题
- 语义问题:调用'displayBoard'没有匹配函数
- 关于c++复制构造函数调用的问题
- 设计问题——一个函数调用所有三个函数
- 关于C++函数调用和计算的问题
- GCC 问题 - 没有匹配的函数调用
- std::mem_fun_ref问题:作为成员函数调用时作为函子断开