Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436

Ошибка при компиляции: "E2275 { expected" и "E2040 Declaration terminated incorrectly"

16.12.2012, 14:22. Показов 2499. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! При компиляции выдает такую ошибку:

[
C++
1
2
C++ Error] Unit1.cpp(12): E2275 { expected
[C++ Error] Unit1.cpp(147): E2040 Declaration terminated incorrectly
Код:
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
//---------------------------------------------------------------------------
 
#pragma hdrstop
#include <iostream.h>
#include <conio.h >
#include <vcl.h>
 
//---------------------------------------------------------------------------
 
#pragma argsused
// инифиализация класса auto
class auto
{
        public:
    char* marka; // Марка машины
        int power; // Мощность
    float cost ; // Стоимость
 
 // Конструктор класса auto без параметров
    auto()
    {
        marka = new char[20];    // выделение памяти для марки машины
        strcpy(marka,"BELAZ"); // копирование названия поумолчанию в выделенную память
        power = 1000;    // присваивание свойству power 1000
        cost =23000; // присваивание свойству cost 23000
        // вывод сообщение о создании нового экземпляра класса  auto
        cout<<"Created auto object"<<" "<<this<<" marka: "<<marka<<"\n\r";
    }
// Конструктор класса auto с параметрами
// входные параметры:
// mr - марка
// powerN - мощность
// costN - стоимость
    auto(char* mr, int powerN, float costN)
    {
        marka = new char[StrLen(mr)]; // выделение памяти для марки машины
        strcpy(marka,mr); // копирование марки в выделенную память
        power = powerN; // присваивание свойству power знаения powerN
        cost = costN; // присваивание свойству cost знаения costN
        // вывод сообщение о создании нового экземпляра класса  auto
        cout<<"Created auto object"<<" "<<this<<" marka: "<<marka<<"\n\r";
    }
// Конструктор копирования класса auto
    auto(const auto& st)
    {
        marka= new char[StrLen(st.marka)]; // выделение памяти копии свойства marka
        strcpy(marka,st.marka); // копирование марки в  выделенную память
        power=st.power;// присваивание свойству power знаение копируемого экзкмпляра класса
        cost=st.cost;// присваивание свойству cost знаение копируемого экзкмпляра класса
// вывод сообщения об завершении работы конмтруктора копирования
        cout<<"Object copied"<<" "<<this<<" marka: "<<marka<<"\n\r";
    }
// Диструктор класса auto
    ~auto()
    {
    // вывод сообщение об уничтожении экземпляра класса auto
        cout<<"Destroyed auto object"<<" "<<this<<" marka: "<<marka<<"\n\r";
        delete this->marka; // освобождение памяти от строки значения свойства marka 
    }
// Метод set_marka предназначен для установки свойства marka в экземляре класса auto
// входные параметры:
// mr - Марка
    void set_marka(char *mr)
    {
    // вывод сообщение об изменении свойства marka экземпляра класса auto
        cout<<"Object"<<" "<<this<<" marka changed from: "<<marka<<" to: "<<mr<<"\n\r";
        delete this->marka;// освобождение памяти от строки значения свойства marka
        marka = new char[StrLen(mr)]; // выделение памяти для свойства marka
        strcpy(marka,mr); // копирование марки в выделенную память
    }
// Метод set_power предназначен для установки свойства power в экземляре класса auto
// входные параметры:
// powerNew - мощность
    void set_power(int powerNew)
    {
        // вывод сообщение об изменении свойства power экземпляра класса auto
        cout<<"Object"<<" "<<this<<" power changed from: "<<power<<" to: "<<powerNew<<"\n\r";
        this->power=powerNew; // присваивание свойству power знаения powerNew
    }
// Метод set_cost предназначен для установки свойства cost в экземляре класса auto
// входные параметры:
// costNew - стоимость
    void set_cost(float costNew)
    {
        // вывод сообщение об изменении свойства cost экземпляра класса auto
        cout<<"Object"<<" "<<this<<" cost changed from: "<<costWord<<" to: male"<<"\n\r";
        this->cost=costNew; // присваивание свойству cost знаения costNew
    }
// Метод show_marka предназначен для просмотра свойства marka класса auto
    void show_marka()
    {
        cout<<"Object"<<" "<<this<<" marka is: "<<marka<<"\n\r"; // вывод значения marka
    }
// Метод show_fog предназначен для просмотра свойства power класса auto
    void show_power()
    {
        cout<<"Object"<<" "<<this<<" power is: "<<power<<"\n\r"; // вывод значения power
    }
// Метод show_cost предназначен для просмотра свойства cost класса auto
    void show_cost()
    {
        cout<<"Object"<<" "<<this<<" cost is: "<<cost<<"\n\r"; // вывод значения cost
    }
 }   
 
//-----------------------------------------------------------------------------
int main(int argc, char* argv[])
{
        cout << "\t Object 1 bez parametrov:" << endl;
        auto obj1;//Создали первый объект без параметров
        //Выводи значения полей объекта
        obj1.show_marka();
        obj1.show_power();
        obj1.show_cost();
 
        cout<<"\n \t----- \n"<<endl;
 
        cout << "\t Object 2 s parametrami:" << endl;
        auto obj2("Vaz",135,10000);//Создали второй объект с параметрами
        //Выводи значения полей объекта
        obj2.show_marka();
        obj2.show_power();
        obj2.show_cost();
        //Изменяем значения полей объекта
        obj2.set_marka("UAZ");
        obj2.set_power(150);
        obj2.set_cost(11000);
        //Выводи значения полей объекта
        obj2.show_marka();
        obj2.show_power();
        obj2.show_cost();
        
 
        cout<<"\n \t------- \n"<<endl;
 
        cout << "\t Object 3 iscostzuya konstruktor kopirovaniya:" << endl;
        auto obj3(obj1);//Создали третьий объект конструктором копирования
        //Выводи значения полей объекта
        obj3.show_marka();
        obj3.show_power();
        obj3.show_cost();
 
        return 0;
} 
//---------------------------------------------------------------------------
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.12.2012, 14:22
Ответы с готовыми решениями:

[C++ Error] kurscpp.cpp(4): E2040 Declaration terminated incorrectly
#include &lt;windows.h&gt; #include &lt;stdio.h&gt; #pragma hdrstop extern &quot;C&quot; _stdcall DATE(char *, char *, char *); void main() { ...

Исправить ошибку в коде: E2040 Declaration terminated incorrectly
Ошибка указывает на первую строку, не могу понять Unit2.cpp(160): E2040 Declaration terminated incorrectly if(Edit1-&gt;Text...

[BCC32 Error] Zfzlib.hpp(116): E2040 Declaration terminated incorrectly
Доброго всем времени суток! При Build проекта появляется ошибка Zfzlib.hpp(116): E2040 Declaration terminated incorrectly ...

3
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
16.12.2012, 14:50
Цитата Сообщение от zesen Посмотреть сообщение
{ expected
Кривой скобки нехватает.
Вторая ошибка пропадет после исправления первой.
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,857
16.12.2012, 14:58
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Цитата Сообщение от zesen Посмотреть сообщение
class auto
видишь auto сининьким светится
это служебное слово С
поменяй имя класса например MyAuto или Auto

Добавлено через 2 минуты
Ключевое слово auto

Судьбу этого ключевого слово можно сравнить с goto: с одной стороны - в языке есть, с другой - его не используют. Но в случае с auto всё проще. Хотя его и можно использовать для объявления локальных переменных, но смысла в этом нет, так как все локальные переменные по умолчанию считаются автоматическими. Поэтому на практике это ключевое слово не используется. Есть мнение что ключевое слово auto включили в язык С для совместимости с языком B ну а потом оно перекочевало и в С++
http://www.quizful.net/post/cpp-keywords-usage

Добавлено через 1 минуту
Цитата Сообщение от Samrisbe Посмотреть сообщение
Кривой скобки нехватает.
Не наоборот лишняя
имя класса ишет
2
122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436
16.12.2012, 15:39  [ТС]
ValeryS, большое спасибо! Помогло!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.12.2012, 15:39
Помогаю со студенческими работами здесь

"E2090: Qualifier 'Date0' is not a class or namespace name" и "E2040: Declaration terminated incorrectly"
Подскажите пожалуйста,в чем ошибка? //--------------------------------------------------------------------------- #include...

Ошибка E2040 Declaration terminated incorrectly
//--------------------------------------------------------------------------- #include &lt;clx.h&gt; #include &lt;stdio.h&gt; #include...

[C++] Unit1.cpp(20): E2040 Declaration terminated incorrectly
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #include &lt;iostream.h&gt; #include...

[C++ Error] Lib.cpp(18): E2040 Declaration terminated incorrectly
Доброго времени суток. Пытаюсь компильнуть прогу. Lib.cpp(18): E2040 Declaration terminated incorrectly Помогите разобраться,...

Структура Octal. Выдает ошибку E2040 Declaration terminated incorrectly. Не пойму в чем проблема?
#include &lt;iostream.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; struct Octal {char*s;int len;} chislo ; {for(int...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru