一个新的新类对象的功能;错误:非静态成员引用必须与特定对象相关

时间:2016-02-25 22:35:34

标签: c++

我想创建一个招聘(创建一个新的类对象)新员工的功能。我决定使用默认构造函数(如果不是很好的决定请纠正我)。我收到了Employee::Hire(employees);

的错误
#include <iostream>
#include <string>
#include <vector>

class Employee
{
private:
    std::string name;

public:
    Employee::Employee()
    {

        std::cout << "test" << std::endl;
    }

    void Employ(std::vector<Employee> &v)
    {
        v.push_back(Employee());
    }
};

int main()
{
    std::vector<Employee> employees;

    Employee::Employ(employees);

    system("pause");
}

如何解决?

1 个答案:

答案 0 :(得分:2)

此功能:

void Employ(std::vector<Employee> &v)
{
    v.push_back(Employee());
}

应该移出Employee的类定义。成员函数在类的实例上运行,但是您打算在没有任何实例的情况下调用它。

或者可以将函数设为static,但是恕我直言,首选的样式是使用非成员。