Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
zesen
122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436
1

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

16.12.2012, 14:22. Просмотров 876. Ответов 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 14:22
Ответы с готовыми решениями:

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

Ошибки "Declaration syntax error" и "Multiple declaration" при компиляции проекта
Optimalnost_Unit.cpp(6): E2141 Declaration syntax error ...

[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; ...

При компиляции выдаёт ошибку "Declaration syntax error"
В строке &quot; {for(double x=xn; x&lt;=xk; x+=h)&quot; при компиляции выскакивает...

Ошибка при создании массива "Access violation. Link terminated"
создается массивы float X, Y, Z, E,F,Fan; все отлично но при попытке...

3
Samrisbe
1352 / 722 / 66
Регистрация: 28.01.2011
Сообщений: 1,979
16.12.2012, 14:50 2
Цитата Сообщение от zesen Посмотреть сообщение
{ expected
Кривой скобки нехватает.
Вторая ошибка пропадет после исправления первой.
0
ValeryS
Модератор
7316 / 5559 / 704
Регистрация: 14.02.2011
Сообщений: 18,853
16.12.2012, 14:58 3
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

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

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

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

Добавлено через 1 минуту
Цитата Сообщение от Samrisbe Посмотреть сообщение
Кривой скобки нехватает.
Не наоборот лишняя
имя класса ишет
2
zesen
122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436
16.12.2012, 15:39  [ТС] 4
ValeryS, большое спасибо! Помогло!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 15:39

Ошибка при работе с ини файлами когда разделителем является не "=", а ":"
Всем привет. Такая проблема имеются файлы &quot;.ini&quot; в них разделителем является...

Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add")
При использовании следующего кода: Word =...

Ошибка "Type mismatch in redeclaration of" при компиляции программы
Реализую итерационный мгуа и выдает такую ошибку Type mismatch in redeclaration...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru