gpt4 book ai didi

c++ - 为什么我的一些元素没有显示在我的最终输出中?

转载 作者:行者123 更新时间:2023-11-28 04:06:56 25 4
gpt4 key购买 nike

我正在尝试设置我的变量值以显示在我的输出中,但只有一个变量的值设法显示在我的输出中。是因为我的类定义中的get、set方法有错误吗?

#include <iostream>;
#include <string>;


using namespace std;

class Employee
{
private:
string name;
int idNumber;
string department;
string position;

public:
void setEmployee(string nam, int id, string dep, string pos);

string getEmployee();





};

void Employee::setEmployee(string nam, int id, string dep, string pos)
{
name = nam;
idNumber = id;
department = dep;
position = pos;
}

string Employee::getEmployee()
{
return name, idNumber, department, position;
}


int main()
{
Employee emp;
cout << "Name \t" << "ID Number \t" << "Department \t" << "Position" << endl;

emp.setEmployee("Susan", 47899, "Accounting", "Vice President");

cout << emp.getEmployee();

return 0;
}

最佳答案

错误在这里:

return name, idNumber, department, position;

在 C++ 中,一个函数只能返回一个值。您的 getEmpoyee() 函数被定义为返回一个字符串,而这正是它的作用。

按照您的方式使用逗号是一种有效的语法,因此它可以编译,但它不会按照您的想法进行。 name 之后的所有内容都将被忽略。

正确的方法是为所有字段创建单独的获取函数。

也推荐使用单独的set函数,每次只设置一个字段。如果您想一次初始化所有字段,您应该在构造函数中进行。

例子:

class Employee
{
private:
string name;
int idNumber;
string department;
string position;

public:
//this is a constructor, it has no return type and same name as the class
Employee(string nam, int id, string dep, string pos);

string getEmployee();
};


Employee::Employee(string nam, int id, string dep, string pos)
{
name = nam;
idNumber = id;
department = dep;
position = pos;
}

int main() {
Employee emp("Susan", 47899, "Accounting", "Vice President");
}

关于c++ - 为什么我的一些元素没有显示在我的最终输出中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58571625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com