Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/131: Рейтинг темы: голосов - 131, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 7

Ошибка 'Type name expected'

06.07.2011, 12:21. Показов 25300. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!!! Очень нужна помощь!

При компиляции выдаются ошибки:
[C++ Error] Unit1.h(339): E2303 Type name expected
[C++ Error] Unit1.h(339): E2139 Declaration missing ;
[C++ Error] Unit1.h(340): E2303 Type name expected
[C++ Error] Unit1.h(340): E2238 Multiple declaration for 'Personal_Main_Form::vector'
[C++ Error] Unit1.h(339): E2344 Earlier declaration of 'Personal_Main_Form::vector'
[C++ Error] Unit1.h(340): E2139 Declaration missing ;

в Unit1.h в строке vector <vek_Prof_and_VidRab> smezProfVector;


Замечено, если в Unit2.cpp вместо #include "Unit1.H" написать #include "Unit1.CPP", то ошибки исчезают


Вот файлы:

Unit1.h
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
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
 
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
 
#include <Menus.hpp>
#include <ComCtrls.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <DBGrids.hpp>
#include <Grids.hpp>
#include <DBCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Mask.hpp>
#include <Dialogs.hpp>
 
#include <vector>
#include <string>
 
//--------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
 
...............................
 
};
 
 
class vek_Prof_and_VidRab {
public:
  vek_Prof_and_VidRab() {};
  vek_Prof_and_VidRab(const char* _id,
                      const char* _name,
                      const char* _num_svidet,
                      const char* _date_svidet,
                      const char* _num_protokola,
                      const char* _date_protokola)
    {
          id              =  _id;
          name            =  _name;
          num_svidet      =  _num_svidet;
          date_svidet     =  _date_svidet;
          num_protokola   =  _num_protokola;
          date_protokola  =  _date_protokola;
    };
    ~vek_Prof_and_VidRab() {};
 
    String id,name,num_svidet,date_svidet,num_protokola,date_protokola;
};
 
 
 
class Personal_Main_Form {
public:
  Personal_Main_Form() {};
  Personal_Main_Form(const char* _id,
                     const char* _dateCre,
                     const char* _dateUvolnenya,      
                     const char* _grElekBez,
                     const char* _dateGrElekBez,
                     const char* _dateProvOT,
                     const char* _dateMedicalBoard,
                     const char* _datePerevodaNaOsn)
    {
          id                  =  _id;
          dateCre             =  _dateCre;
          dateUvolnenya       =  _dateUvolnenya;
          grElekBez           =  _grElekBez;
          dateGrElekBez       =  _dateGrElekBez;
          dateProvOT          =  _dateProvOT;
          dateMedicalBoard    =  _dateMedicalBoard;
          datePerevodaNaOsn   =  _datePerevodaNaOsn;
    };
    ~Personal_Main_Form() {};
 
    String id, dateCre, dateUvolnenya, grElekBez, dateGrElekBez, dateProvOT, dateMedicalBoard, datePerevodaNaOsn;
 
    vector <vek_Prof_and_VidRab> smezProfVector;
    vector <vek_Prof_and_VidRab> obuchVidRabVector;
};

Unit2.cpp

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
#include <vcl.h>
#pragma hdrstop
 
 
#include "Unit2.h"
#include "Unit1.h"
#include "Unit3.h"
#include "Unit5.h"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
 
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm2::Button2Click(TObject *Sender)
{
    Form2->Close();
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.07.2011, 12:21
Ответы с готовыми решениями:

Ошибка E2303 Type name expected
Здравствуйте. код Unit1.h //--------------------------------------------------------------------------- #include...

Type name expected Ошибка builder 6
Выдаёт в программе ошибки: 1)Type name expected(.h) 2)Type name expected(.cpp) 3)Call to Undefined function &quot;CheckData&quot; ...

Подскажите почему ошибка Type name expected
в классе объявил массив потоков #ifndef manH #define manH #include &lt;Classes.hpp&gt; #include &lt;vector&gt; #include...

5
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
06.07.2011, 13:41
1. что-нибудь два раза да подключили
2. для чего в Unit2.cpp с одной кнопкой для закрытия формыстолько
C++
1
2
3
#include "Unit1.h"
#include "Unit3.h"
#include "Unit5.h"
3.
Замечено...
работает, ошибок нет - что не устривает ?
1
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 7
06.07.2011, 17:30  [ТС]
1. Проверяю, но вроде все норм....
2. Все не выкладывал, такая ситуация на любом Unit.
3. Основная проблема в том, что есть Unit с потоком (MyThread.h). Если подкидывать Unit1.H то ошибка в Unit1.h в строке

C++
1
vector <vek_Prof_and_VidRab> smezProfVector;
, а если через CPP - ошибки при работе с потоком

вот юнит потока (тестовый):

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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "MyThread.h"
#include "Unit1.h"
 
#pragma package(smart_init)
//---------------------------------------------------------------------------
 
//---------------------------------------------------------------------------
 
__fastcall MyThread::MyThread(bool CreateSuspended)
        : TThread(CreateSuspended)
{
 FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall MyThread::Execute()
{
 int i=0;
 while (!Terminated)
 {
  i++;
  Form1->Edit7->Text = i;
  Sleep(50);
 }
}
//---------------------------------------------------------------------------
Работа с потоком
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
MyThread *MT1;
 
 
 
 
void __fastcall TForm1::Button8Click(TObject *Sender)
{
   MT1 = new MyThread(true);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button9Click(TObject *Sender)
{
   MT1->Terminate();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button11Click(TObject *Sender)
{
MT1->Resume();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button10Click(TObject *Sender)
{
MT1->Suspend();        
}
//---------------------------------------------------------------------------
Добавлено через 2 часа 16 минут
Причина ошибок пробел между 'vector' и '<vek_Prof_and_VidRab>'

надо так
C++
1
vector<vek_Prof_and_VidRab> smezProfVector;
вот только поток все равно не заработал.

Добавлено через 3 минуты
А нет, та же ошибка
0
 Аватар для Питекантроп
251 / 145 / 21
Регистрация: 14.06.2010
Сообщений: 340
06.07.2011, 21:53
попробуйте использовать перед объявлением вектора
using namespace std;
2
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 7
07.07.2011, 09:51  [ТС]
Цитата Сообщение от Питекантроп Посмотреть сообщение
попробуйте использовать перед объявлением вектора
using namespace std;
Помогло!!!! Спасибо.

Если не сложно поясните, на что это повлияло.
0
 Аватар для Питекантроп
251 / 145 / 21
Регистрация: 14.06.2010
Сообщений: 340
07.07.2011, 15:07
Цитата Сообщение от yurka_k Посмотреть сообщение
Если не сложно поясните, на что это повлияло
класс vector принадлежит к пространству имен std. Поэтому нужно объявлять его использование.
Если не объявлять, то при каждом обращении к вектору нужно писать std::vector.
Или же можно еще вместо
C++
1
#include <vector>
писать
C++
1
#include "vector.h"
. В файле vector.h std уже объявлено.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.07.2011, 15:07
Помогаю со студенческими работами здесь

Type name expected
//--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H ...

Type name expected
Всем привет! Пишу на C++ Builder XE. Проект со множеством классов, среди которых есть две формы: TTableView, описанный в файле...

Type name expected
Type name expected При компиляции наблюдаю следующие ошибки: Unit3.h(22): E2303 Type name expected Unit3.h(22): E2356 Type...

[C++ Error] LikarnyaClass.h(28): E2303 Type name expected
Здравствуйте не могу понять как это исправить, может кто помочь и обьяснить что бы потом не было таких ошибок. Вот код:

[C++ Error] Unit7.h(26): E2303 Type name expected
.h #ifndef Unit7H #define Unit7H //--------------------------------------------------------------------------- #include...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru