Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MarsRB
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 9
#1

Компилятор ругается на не объявленный идентификатор - C++

10.07.2016, 09:21. Просмотров 168. Ответов 5
Метки нет (Все метки)

Подскажите в чем проблема ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#pragma once
#include "stdafx.h"
class Employer
{
public:
    vector <Manager> managers;
    vector <Seller> sellers;
    vector <Intern> interns;
 
protected:
    string FName, LName;
    string position;
    int year;
    int exp;
    double salary;
 
public:
    Employer();
    Employer(string, string, string, int, int, double);
    Employer(const Employer&);
    friend istream& operator>> (istream&, Employer&);
    friend ostream& operator<< (ostream&, Employer&);
    
 
 
    virtual ~Employer();
};
 
#pragma once
#include "stdafx.h"
#include "Employer.h"
 
 
Employer::Employer() :FName("FName"), LName("LName"), position("Position"), year(0), exp(0), salary(0.0)
{
 
}
Employer::Employer(string fN, string lN, string p, int y, int e, double s)
{
    FName = fN;
    LName = lN;
    position = p;
    year = y;
    exp = e;
    salary = s;
}
Employer::Employer(const Employer& obj)
{
    FName = obj.FName;
    LName = obj.LName;
    position = obj.position;
    year = obj.year;
    exp = obj.exp;
    salary = obj.salary;
}
istream& operator>> (istream& inp, Employer& obj)
{
    int indx;
    Manager _mn;
    Seller _sl;
    Intern _in;
    cout << "Кого вы хотите добавить ? "<<endl;
    cout << "1- Manager" << endl;
    cout << "2- Seller" << endl;
    cout << "3- Intern" << endl;
    cin >> indx;
    switch (indx)
    {
    case 1:
        inp >> _mn;
        obj.managers.push_back(_mn);
        break;
    case 2:
        inp >> _mn;
        obj.sellers.push_back(_sl);
        break;
    case 3:
        inp >> _mn;
        obj.interns.push_back(_in);
        break;
    default:
        break;
    }
    return inp;
}
ostream& operator<< (ostream& out, Employer& obj)
{
    for (int i = 0; i < obj.managers.size(); i++)
    {
        out << obj.managers[i];
    }
    for (int i = 0; i < obj.managers.size(); i++)
    {
        out << obj.sellers[i];
    }
    for (int i = 0; i < obj.managers.size(); i++)
    {
        out << obj.interns[i];
    }
        return out;
}
 
Employer::~Employer()
{
}
Ошибка 1 error C2065: Manager: необъявленный идентификатор
Ошибка 2 error C2923: std::vector: "Manager" не является допустимым аргументом типа шаблон для параметра "_Ty"
Ошибка 3 error C2065: Seller: необъявленный идентификатор
Ошибка 4 error C2923: std::vector: "Seller" не является допустимым аргументом типа шаблон для параметра "_Ty"
Ошибка 5 error C2065: Intern: необъявленный идентификатор
Ошибка 6 error C2923: std::vector: "Intern" не является допустимым аргументом типа шаблон для параметра "_Ty"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2016, 09:21     Компилятор ругается на не объявленный идентификатор
Посмотрите здесь:

компилятор ругается на структуру C++
C++ ошибка компилятор ругается...
Почему компилятор ругается? C++
Почему ругается на не объявленный идентификатор C++
Ругается компилятор C++
ругается компилятор: C++
Ругается компилятор C++
C++ Компилятор не ругается
C++ Компилятор ругается на textcolor
Компилятор ругается на USHORT * C++
Компилятор ругается C++
C++ Компилятор ругается на fopen

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pav1uxa
1773 / 1613 / 615
Регистрация: 23.01.2014
Сообщений: 5,818
Завершенные тесты: 1
10.07.2016, 09:39     Компилятор ругается на не объявленный идентификатор #2
Цитата Сообщение от MarsRB Посмотреть сообщение
Подскажите в чем проблема ?
Цитата Сообщение от MarsRB Посмотреть сообщение
Manager: необъявленный идентификатор
Что такое "Manager"? Откуда оно берется? Оно нигде не объявлено.

Такое же по остальным.
MarsRB
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 9
10.07.2016, 09:40  [ТС]     Компилятор ругается на не объявленный идентификатор #3
Это отдельные классы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
 
#include "Employer.h"
#include "Manager.h"
#include "Seller.h"
#include "Intern.h"
#include "Factory.h"
pav1uxa
1773 / 1613 / 615
Регистрация: 23.01.2014
Сообщений: 5,818
Завершенные тесты: 1
10.07.2016, 09:42     Компилятор ругается на не объявленный идентификатор #4
Цитата Сообщение от MarsRB Посмотреть сообщение
Это отдельные классы
Об этом я догадался.

Но компилятор их не видит. Видимо Вы их не включили в Employer.h.
MarsRB
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 9
10.07.2016, 09:44  [ТС]     Компилятор ругается на не объявленный идентификатор #5
Они в stdafx.h , а он подключен
Но я вроде уже понял что я не правильно использовал патерн Фабрика .За ответ большое спасибо .
Не судите строго , недавно начал учить с++
zss
Модератор
Эксперт С++
6193 / 5796 / 1877
Регистрация: 18.12.2011
Сообщений: 14,809
Завершенные тесты: 1
10.07.2016, 13:42     Компилятор ругается на не объявленный идентификатор #6
Цитата Сообщение от MarsRB Посмотреть сообщение
stdafx.h
это необычный файл.
Он называется файлом предкомпилируемых заголовков.
Не стоит на него рассчитывать.
Yandex
Объявления
10.07.2016, 13:42     Компилятор ругается на не объявленный идентификатор
Ответ Создать тему
Опции темы

Текущее время: 03:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru