C2065 Employee: необъявленный идентификатор
Factory.h
#pragma once
#include <iostream>
#include <vector>
#include "Employee.h"
using namespace std;
class Factory
{
private:
string name;
int capacity;
vector<Employee*> stack;
public:
Factory();
Factory(string name, int capacity);
~Factory();
int GetCapacity();
void ShowEmployeeList();
string GetName();
void virtual ShowFactoryInfo();
string virtual GetType();
};
Ошибки:
C2065 Employee: необъявленный идентификатор EmployeeManagment Factory.h 13
C2059 синтаксическая ошибка: > EmployeeManagment Factory.h 13
Employee.h
#pragma once
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "Enums.h"
#include "Utils.h"
#include "Factory.h"
using namespace std;
class Employee
{
private:
string fio;
int number;
int age;
int stage;
int salary;
vector<Factory*> workplace;
public:
string GetFIO();
int GetNumber();
int GetAge();
int GetStage();
int GetSalary();
void CalculateSalary(int);
virtual string GetType();
virtual void DisplayEmployee();
Employee();
Employee(string, int, int, int);
~Employee();
};
Ошибки:
C2065 Factory: необъявленный идентификатор EmployeeManagment Employee.h 20
C2059 синтаксическая ошибка: > EmployeeManagment Employee.h 20
Ответы (1 шт):
Автор решения: HolyBlackCat
→ Ссылка
У вас циклическая зависимость - хедеры инклудят друг друга. Хотя бы один из двух #include нужно убрать, а лучше оба. Чтобы компилятор после этого не ругался на необъявленный идентификатор - добавить предварительное объявление соотвествующего класса: class Employee; и т. п.