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

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

Восстановить пароль Регистрация
 
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
21.04.2013, 21:43     Ошибки класс #1
Как исправить такое чудо?
Кликните здесь для просмотра всего текста
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();
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 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();
 
}
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
21.04.2013, 22:31     Ошибки класс #3
C++
1
int main(int &N)
она таких аргументов не принимает
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
22.04.2013, 12:33  [ТС]     Ошибки класс #4
Цитата Сообщение от Саня gamer Посмотреть сообщение
C++
1
int main(int &N)
она таких аргументов не принимает
А как тогда передать значение количества элементов в функцию main?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.04.2013, 15:28     Ошибки класс #5
weightless, Ознакомьтесь с argv, argc
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();
 
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
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;
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
23.04.2013, 20:48  [ТС]     Ошибки класс #8
А после удаления
Цитата Сообщение от weightless Посмотреть сообщение
float **mass;
программа вообще ничего не выполняет кроме ввода числа элементов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2013, 21:07     Ошибки класс
Еще ссылки по теме:

Непонятные ошибки. Класс "Список" C++
Класс Студент (исправить ошибки) C++
Отдельно класс данных, класс формул и главный класс C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
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];
Yandex
Объявления
23.04.2013, 21:07     Ошибки класс
Ответ Создать тему
Опции темы

Текущее время: 02:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru