调出公共成员变量

时间:2014-03-19 04:13:31

标签: c++ class

这是我的班级功能

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”函数。我习惯了没有参数的类对象。

2 个答案:

答案 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。