为什么在多文件中使用 class 声明友元函数时出现错误 class undefined?

Why i get error class undefined when declare friend funcion with class in multi file?

我在 Nhanvien 创建了一个 friend funcion "display"(member of List class) class.List 已声明,但它仍然存在此错误:

C2027 use of undefined type 'List'.

我正在使用 Visual studio。我该如何解决?请帮我。抱歉我的英语不好:<

这是我的来源:

*//List.h*
#pragma once

#include"Nhanvien.h"

class Nhanvien;

class List
{

        Nhanvien* p;

   public:

       List();
       List(int);
       ~List();
       void display(int);
};


*//Nhanvien.h*
  
#pragma once
#include<iostream>
#include "Date.h"
#include"List.h"

class List;
class Nhanvien
{

private:
    
    char maNV[100];
    std::string tenNV;
    Date ngay;
    bool gioitinh;
    double luong;
    
public:
    
    Nhanvien();
    Nhanvien(const Nhanvien&);
    ~Nhanvien();
    void set();
    void show();
    static int count;
    friend void List::display(int);
};

show error

你有 header 秒的递归依赖。

//List.h

#pragma once

#include"Nhanvien.h"

//...

//Nhanvien.h

#pragma once
#include<iostream>
#include "Date.h"
#include"List.h"
//...

所以 header List.h 首先包括 header Nhanvien.h 而这个 header 还没有看到 [=29= 的声明] List.