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

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

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

Ошибки класс - C++

21.04.2013, 21:43. Просмотров 479. Ответов 8
Метки нет (Все метки)

Как исправить такое чудо?
Кликните здесь для просмотра всего текста
Checking project dependencies...
Compiling Project1.cbproj (Debug, Win32)
bcc32 command line for "..\..\..\Desktop\File1.cpp"
c:\program files (x86)\embarcadero\rad studio\10.0\bin\bcc32.exe -D_DEBUG -D_RTLDLL -n.\Win32\Debug -I..\..\..\Desktop;"C:\Program Files
(x86)\Embarcadero\RAD Studio\10.0\include\boost_1_39\boost\tr1\tr1";"C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\include\boost_1_39";
"c:\program files (x86)\embarcadero\rad studio\10.0\include";"c:\program files (x86)\embarcadero\rad studio\10.0\include\dinkumware";"c:\program
files (x86)\embarcadero\rad studio\10.0\include\windows\crtl";"c:\program files (x86)\embarcadero\rad studio\10.0\include\windows\sdk";"c:\program
files (x86)\embarcadero\rad studio\10.0\include\windows\rtl";"c:\program files (x86)\embarcadero\rad studio\10.0\include\windows\vcl";"C:\Program
Files (x86)\FastReports\LibD17";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE3\Win32";..\..\..\Desktop;"C:\Program Files (x86)\Embarcadero\RAD
Studio\10.0\include\boost_1_39\boost\tr1\tr1";"C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\include\boost_1_39";"c:\program files
(x86)\embarcadero\rad studio\10.0\include";"c:\program files (x86)\embarcadero\rad studio\10.0\include\dinkumware";"c:\program files
(x86)\embarcadero\rad studio\10.0\include\windows\crtl";"c:\program files (x86)\embarcadero\rad studio\10.0\include\windows\sdk";"c:\program files
(x86)\embarcadero\rad studio\10.0\include\windows\rtl";"c:\program files (x86)\embarcadero\rad studio\10.0\include\windows\vcl";"C:\Program Files
(x86)\FastReports\LibD17";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE3\Win32" -y -Q -k -r- -c -tC -C8 -o.\Win32\Debug\File1.obj -w-par -Od -v -vi-
-H=.\Win32\Debug\Project1.pch -H ..\..\..\Desktop\File1.cpp
[bcc32 Error] File1.cpp(113): E2190 Unexpected }
[bcc32 Error] File1.cpp(118): E2108 Improper use of typedef 'mas'
Full parser context
File1.cpp(115): parsing: int main(int &)
[bcc32 Error] File1.cpp(119): E2108 Improper use of typedef 'mas'
Full parser context
File1.cpp(115): parsing: int main(int &)
[bcc32 Error] File1.cpp(120): E2108 Improper use of typedef 'mas'
Full parser context
File1.cpp(115): parsing: int main(int &)
[bcc32 Error] File1.cpp(121): E2108 Improper use of typedef 'mas'
Full parser context
File1.cpp(115): parsing: int main(int &)
[bcc32 Error] File1.cpp(122): E2108 Improper use of typedef 'mas'
Full parser context
File1.cpp(115): parsing: int main(int &)
[bcc32 Error] File1.cpp(123): E2108 Improper use of typedef 'mas'
Full parser context
File1.cpp(115): parsing: int main(int &)
[bcc32 Error] File1.cpp(124): E2268 Call to undefined function 'getch'
Full parser context
File1.cpp(115): parsing: int main(int &)
[bcc32 Warning] File1.cpp(126): W8004 'p' is assigned a value that is never used
Full parser context
File1.cpp(115): parsing: int main(int &)
Failed
Elapsed time: 00:00:00.1

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
 
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
class mas{
    int N;
    float *mass;
    public:
        mas(int nn=0):N(nn) {
            cout<<"Введите количество элементов"<<endl;
            cin>>nn;
            if (nn==0) {
               cout<<"Неверное число"<<endl;
            }
            else
            {float **mass;//Выделение памяти для массива указателей
            *mass=new float[N];
            }
        };
        ~mas(){
            for (int i = 0; i < N; i++) {
               delete [] mass;
            }
        };
        int fio(){
            cout<<"Массив"<<endl;
            return 1;}
        int m(){//Заполнение массива случайными числами от 0 до 10000
          for (int i = 0; i < N; i++) {
                mass[i]=((float) rand()/(float) RAND_MAX)*3.4*pow(2.7,76)-3.4*pow(2.7,38);
          }
          return 1;
          };
        int BbIBOg(){
            for (int i = 0; i < N; i++) {
                cout<<mass[i]<<endl;
            }
            return 1;
        };
        int Otric(){
            int count=0;//количество отрицательных чисел в массиве
            for(int i=0; i<N; i++)
             {
                 if(mass[i]<0)
                 count++;
             }
             cout<<endl;
             cout<<"Количество елементов, менше 0 = "<< count <<endl;
             return 1;
        };
        int summ(){// сумма массива после минимального по модулю элемента
            float temp=fabs(mass[0]);
            float add=0;
            int m = 0;
            for (int i = 0; i < N; i++) {
                if ((fabs(mass[i]))<temp ) {
                    temp=mass[i];
                    m=i+1;
                }
             }
             for (m; m < N; m++) {
                add+=mass[m];
             }
             cout<<"Сумма массива после минимального по модулю элемента="<<add<<endl;
             return 1;
            };
        int num(){//Заменить все отрицательные элементы массива их квадратами и упорядочить полученный массив по возрастанию.
                float tmp;
                 for(int i=0; i<N; i++)
             {
                 if(mass[i]<0){
                 mass[i]=pow(mass[i],2);
                 }
             }
             for(int i = 0; i < N - 1; ++i) // i - номер прохода
            {
                for(int j = 0; j < N - 1; ++j) // внутренний цикл прохода
                {
                    if (mass[j + 1] < mass[j])
                    {
                        tmp = mass[j + 1];
                        mass[j + 1] = mass[j];
                        mass[j] = tmp;
                    }
                    }
                }
 
            for (int i = 0; i < N; i++) {
                cout<<mass[i]<<endl;
            }
            return 1;
        };
        };
 
 
};
 
int main(int &N){
    setlocale( LC_ALL,"Russian" );
    mas *p=new mas[N];
    mas.fio();
    mas.BbIBOg();
    mas.Otric();
    mas.summ();
    mas.num();
    mas.BbIBOg1();
    getch();
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2013, 21:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибки класс (C++):

Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки - C++
Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цилиндров, мощностью. Определить методы переназначения...

Класс Студент (исправить ошибки) - C++
Ребята, помогите пожалуйста исправить) #include &lt;iostream&gt; using namespace std; class Student { char * NAME; int...

ошибки с указателем на родительский класс - C++
задание: сделать 3 класса: список, стек(списком), очередь(списком). Методы: вывод, добавление, удаление. Использовать при обращении...

Класс Quadrangle ошибки компиляции - C++
Добрый вечер. Помогите исправить ошибку Выдает In member function 'bool Trapezium::Check()': lvalue required as left operand of...

Класс Матриц ( исправьте Ошибки плз) - C++
У меня задание написать класс матриц с использованием перегруженых операторов при компиляции находит с десяток ошибок помогите...

Разработать класс LongInteger (как исправить ошибки?) - C++
ЗАДАНИЕ: Разработать класс LongInteger (длинное целое) для работы с очень большими числами (порядка 100 разрядов в десятичной системе...

8
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.04.2013, 22:29 #2
Цитата Сообщение от weightless Посмотреть сообщение
mas.fio();
mas это тип данных, а не объект.

C++
1
p[0].fio();
Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main(int &N)
{
    setlocale( LC_ALL,"Russian" );
    mas *p = new mas[N];
    for (int i = 0; i < N; ++i)
    {
        p[i].fio();
        p[i].BbIBOg();
        p[i].Otric();
        p[i].summ();
        p[i].num();
        p[i].BbIBOg();
    }
    delete [] p;
    getchar();
 
}
1
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
21.04.2013, 22:31 #3
C++
1
int main(int &N)
она таких аргументов не принимает
1
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
22.04.2013, 12:33  [ТС] #4
Цитата Сообщение от Саня gamer Посмотреть сообщение
C++
1
int main(int &N)
она таких аргументов не принимает
А как тогда передать значение количества элементов в функцию main?
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.04.2013, 15:28 #5
weightless, Ознакомьтесь с argv, argc
1
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
23.04.2013, 20:28  [ТС] #6
Переделал прогу, она компилируется, но рушится после ввода количества элементов массива:
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
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
class mas{
    int N;
    float *mass;
    public:
        mas(int nn=0):N(nn) {
            cout<<"Введите количество элементов"<<endl;
            cin>>nn;
            if (nn==0) {
               cout<<"Неверное число"<<endl;
            }
            else
            {float **mass;//Выделение памяти для массива указателей
            *mass=new float[N];
            }
        };
        ~mas(){
            for (int i = 0; i < N; i++) {
               delete [] mass;
            }
        };
        int fio(){
            cout<<"Массив"<<endl;
            return 1;}
        int m(){//Заполнение массива случайными числами от 0 до 10000
          for (int i = 0; i < N; i++) {
                mass[i]=((float) rand()/(float) RAND_MAX)*3.4*pow(2.7,16)-3.4*pow(2.7,12);
          }
          return 1;
          };
        int BbIBOg(){
            for (int i = 0; i < N; i++) {
                cout<<mass[i]<<endl;
            }
            return 1;
        };
        int Otric(){
            int count=0;//количество отрицательных чисел в массиве
            for(int i=0; i<N; i++)
             {
                 if(mass[i]<0)
                 count++;
             }
             cout<<endl;
             cout<<"Количество елементов, менше 0 = "<< count <<endl;
             return 1;
        };
        int summ(){// сумма массива после минимального по модулю элемента
            float temp=fabs(mass[0]);
            float add=0;
            int m = 0;
            for (int i = 0; i < N; i++) {
                if ((fabs(mass[i]))<temp ) {
                    temp=mass[i];
                    m=i+1;
                }
             }
             for (m; m < N; m++) {
                add+=mass[m];
             }
             cout<<"Сумма массива после минимального по модулю элемента="<<add<<endl;
             return 1;
            };
        int num(){//Заменить все отрицательные элементы массива их квадратами и упорядочить полученный массив по возрастанию.
                float tmp;
                 for(int i=0; i<N; i++)
             {
                 if(mass[i]<0){
                 mass[i]=pow(mass[i],2);
                 }
             }
             for(int i = 0; i < N - 1; ++i) // i - номер прохода
            {
                for(int j = 0; j < N - 1; ++j) // внутренний цикл прохода
                {
                    if (mass[j + 1] < mass[j])
                    {
                        tmp = mass[j + 1];
                        mass[j + 1] = mass[j];
                        mass[j] = tmp;
                    }
                    }
                }
 
            for (int i = 0; i < N; i++) {
                cout<<mass[i]<<endl;
            }
            return 1;
        };
        };
int main(int argc, char *argv[])
{
    system("chcp 1251 > nul");
    int nw=(int)argv[0];
    mas *p = new mas[nw];
    p[0].fio();
    for (int i = 0; i < nw; ++i)
    {
        p[i].BbIBOg();
        }
         for (int i = 0; i < nw; ++i)
    {
        p[i].Otric();}
         for (int i = 0; i < nw; ++i)
    {
        p[i].summ();}
         for (int i = 0; i < nw; ++i)
    {
        p[i].num();}
    delete [] p;
    getchar();
 
}
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,919
23.04.2013, 20:34 #7
а чей то два раза mass объявляется ???
причем разное

Цитата Сообщение от weightless Посмотреть сообщение
float *mass;
Цитата Сообщение от weightless Посмотреть сообщение
{float **mass;//Выделение памяти для массива указателей


Цитата Сообщение от weightless Посмотреть сообщение
{float **mass;//Выделение памяти для массива указателей
* * * * * * *mass=new float[N];
* * * * * * }
при выходе за фигурные скобки mass потеряется
а в деструкторе будет удалятся mass которому никакого знания и не давали
Цитата Сообщение от weightless Посмотреть сообщение
delete [] mass;
1
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
23.04.2013, 20:48  [ТС] #8
А после удаления
Цитата Сообщение от weightless Посмотреть сообщение
float **mass;
программа вообще ничего не выполняет кроме ввода числа элементов
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,919
23.04.2013, 21:07 #9
Цитата Сообщение от weightless Посмотреть сообщение
программа вообще ничего не выполняет кроме ввода числа элементов
а она у тебя еще и элементы вводит

Цитата Сообщение от weightless Посмотреть сообщение
mas *p = new mas[nw];
вызов конструктора с параметрами по умолчанию

Цитата Сообщение от weightless Посмотреть сообщение
mas(int nn=0):N(nn) {
N=0
и как ты дальше не выпендривайся
Цитата Сообщение от weightless Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
mas(int nn=0):N(nn) {
cout<<"Введите количество элементов"<<endl;
cin>>nn;
 if (nn==0) {
 cout<<"Неверное число"<<endl;
 }
 else
 {float **mass;//Выделение памяти для массива указателей
  *mass=new float[N];
}
какое nn не вводи
N все равно будет равно 0
и значит память выделяем под 0 элементов
Цитата Сообщение от weightless Посмотреть сообщение
mass=new float[N];
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2013, 21:07
Привет! Вот еще темы с ответами:

Класс, найти ошибки + вписать еще одно условие - C++
Создать программу, вводящую в цикле несколько дробей (не более заданного количества N), и находящую для введенных дробей две суммы: сумму...

Класс string " ошибки, не знаю как исправить - C++
компилятор ругает &quot;{&quot; в конструкторах, что нужно поправить или как заменить эти конструкторы? мой код: TPString.h #ifndef TPSTR_H ...

Реализовать пользовательский класс Matrix (найти причины возникновения ошибок в коде и исправить эти ошибки) - C++
Доброго времени суток,задание написать класс Matrix,все вроде бы понятно,но почему-то моя матрица инициализируется мусором,не знаю почему,и...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
23.04.2013, 21:07
Ответ Создать тему
Опции темы

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