我明明定义了的,为什么出现了undefined reference

#include <iostream>
using namespace std;
#include "worker.h"
int main()
{
    workermanager wm;//实例化管理者对象
    int a;
    while(1)
    {
        wm.showmenu();
        cout<<"请选择您要使用的功能的编号:";
        cin>>a;
        switch (a) 
        {
        case 1:
            system("cls");
            wm.add();
            system("pause");
            system("cls");
            break;
        case 2:
            system("cls");
            wm.showworker();
            system("pause");
            system("cls");
            break;
        case 3:
            system("cls");
            wm.search();
            system("pause");
            system("cls");
            break;
        case 4:
            system("cls");
            wm.del();
            system("pause");
            system("cls");
            break;
        case 5:
            system("cls");
            wm.xiugai();
            system("pause");
            system("cls");
            break;
        case 6:
            system("cls");
            wm.tongji();
            system("pause");
            system("cls");
            break;
        case 7:
            system("cls");
            wm.paixu();
            system("pause");
            system("cls");
            break;
        case 8:
            system("cls");
            wm.cleanfile();
            system("pause");
            system("cls");
            break;
        case 9:
            system("cls");
            cout<<"欢迎下次使用"<<endl<<"Welcome to use it next time"<<endl;
            exit(0);
            break;
            default:
                system("cls");
                cout<<"请输入正确的编号!"<<endl;
                break;
        }
    }
    return 0;
} 
这下面这个是worker.h
#pragma once//防止头文件重复包含
#include <iostream>
#include <fstream>
using namespace std;
#include "worker2.h"
#define FILENAME "worker.txt"

class workermanager
{
public:
    workermanager();
    
    int m_renshu;//记录人数
    worker **m_zhigong;
    
    void showmenu();
    
    void add();//添加员工的函数
    
    void save();//将数据保存到文件中
    
    bool shifouweikong;
    
    int getnum();//获取职工人数
    
    void chushihuashuzu();//初始化数组
    
    void showworker();//显示职工
    
    void cleanfile();
    
    void del();//删除职工
    
    int shifoucunzai(string num);//判断职工是否存在
    
    void search();//查找职工
    
    void xiugai();//修改职工信息
    
    void paixu();//对职工进行排序
    
    void tongji();//对职工数据进行一定的统计
    
    ~workermanager();
}; 
这下面这个是worker2.h
#pragma once
#include <iostream>
#include <string>
using namespace std;

class worker
{
public:
    virtual void xianshi()=0;//对职工信息进行一个显示
    string num;
    string name;
    string sex;
    int age;
    string xueli;
    int gongzi;
    string addr;
    string phone;
}; 
这下面这个是employee.h
#pragma once
#include <iostream>
using namespace std;
#include "worker2.h"

class employee:public worker
{
public:
    //构造函数
    employee(string num,string name,string sex,int age,string xueli,int gongzi,string addr,string phone);
    virtual void xianshi();
}; 

cpp代码太多,没有放上来

【以下回答由 GPT 生成】

问题的错误信息是"undefined reference",这通常是因为编译器找不到对应的函数或变量定义。在这个问题中,可能是因为编译器找不到workermanager类的定义。

要解决这个问题,你可以按照以下步骤进行检查和修复:

  1. 确保"worker.h"头文件存在,并包含了workermanager类的定义。在这个头文件中,应该有类的声明和函数的定义。

```cpp // worker.h

class workermanager { public: // 类的声明和函数的定义 // ... }; ```

  1. 确保"worker.cpp"(或其他源文件)中包含了workermanager类的实现。在这个文件中,应该有类的成员函数的具体实现。

```cpp // worker.cpp

#include "worker.h"

// 类成员函数的实现 // ... ```

  1. 确保"worker.cpp"源文件被包含在项目的编译过程中。这可以通过在编译命令中添加"worker.cpp"文件来实现。

bash g++ main.cpp worker.cpp -o program

如果你已经检查了以上步骤,仍然出现"undefined reference"错误,那么可能存在其他问题。在此情况下,你可以提供详细的错误信息和你的代码,以便更好地帮助你解决问题。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你这些都没有实现:


workermanager::workermanager()
workermanager::~workermanager()
workermanager::tongji()
workermanager::paixu()
workermanager::xiugai()
workermanager::search()
workermanager::del()
workermanager::cleanfile()
workermanager::showworker()
workermanager::add()
workermanager::showmenu()