这是我的班级功能
class Employee
{
private:
string ename;
double esalary;
public:
Employee(string nm = "", double sal = 0.0)
{
ename = nm;
esalary = sal;
}
string getName()
{ return ename;}
double getSalary()
{ return esalary;}
};
#endif
现在是我不完整的身体......
#include "employee.h"
using namespace std;
Employee read_employee()
{
string name;
cout << "Please enter the name: ";
getline(cin, name);
double salary;
cout << "Please enter the salary: ";
cin >> salary;
Employee r(name, salary);
return r;
}
int main()
{
Employee emp(string name,double salary);
read_employee();
}
我想知道如何从类中调用“getName或getSalary”函数。我习惯了没有参数的类对象。
答案 0 :(得分:0)
试试这个:
Employee emp = read_employee();
而不是:
Employee emp(string name,double salary);
read_employee();
然后你可以说:
emp.getName()
和emp.getSalary()
您的问题是您的read_employee()
函数是全局函数。也就是说,它不一定附加到任何特定的Employee
实例。如果您将其添加到Employee
课程中,情况可能会更好一些:
class Employee
{
private:
string ename;
double esalary;
public:
Employee(string nm = "", double sal = 0.0)
{
ename = nm;
esalary = sal;
}
string getName()
{ return ename;}
double getSalary()
{ return esalary;}
void read_employee()
{
cout << "Please enter the name: ";
getline(cin, ename);
cout << "Please enter the salary: ";
cin >> esalary;
}
};
然后在main
:
#include "employee.h"
using namespace std;
int main()
{
Employee emp;
emp.read_employee();
cout << emp.getName() << endl;
cout << emp.getSalary() << endl;
}
免责声明:我根本没有进行任何错误检查,所以我们必须假设用户会对他/她的输入做得很好。
答案 1 :(得分:0)
正如克里斯所提到的,你并没有将函数的返回值赋给任何东西。你想要这样的东西:
员工emp = read_employee(“Johnny”,45000);
这将在您的函数中创建一个employee对象,然后返回它。然后将返回的对象分配给emp。