122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436

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

16.12.2012, 14:22. Показов 2517. Ответов 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,863
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 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru