为什么在多文件中使用 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
.
我在 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
.