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

Не получается создать массив класса - C++

Восстановить пароль Регистрация
 
Qsok
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 7
05.11.2013, 17:27     Не получается создать массив класса #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
#include <iostream>
using namespace::std;
 
class dvig
{
    friend void sum_all(dvig &,dvig &);
public:
    dvig(long double ,long double,long double ,long double ,long double ,long double ,long double ,long double,long double );
    void printparametr();
    long double x,y,z,fx,fy,fz,Wx,Wy,Wz;
private :
    static int count;
};
 
void dvig::printparametr()
{
    cout<<"x="<<x<<"y="<<y<<"z="<<z<<"Fx="<<fx<<"Fy="<<fy<<"Fz="<<fz<<"Wx="<<Wx<<"Wy="<<Wy<<"Wz="<<Wz<<endl;
}
 
 
dvig::dvig(long double a,long double b,long double c,long double fx,long double fy,long double fz,long double Wx,long double Wy,long double Wz)
{
    dvig::x=a;
    dvig::y=b;
    dvig::z=c;
    dvig::fx=fx;
    dvig::fy=fy;
    dvig::fz=fz;
    dvig::Wx=Wx;
    dvig::Wy=Wy;
    dvig::Wz=Wz;
}
 
 
void sum_all(dvig *a,dvig *b)
{
    cout<<"summarna9 koordinata parx dvigatelei\n x1="<<(a->x)<<"\t x2="<<(b->x)<<"\n y1="<<(a->y)<<"\t y2="<<(b->y)<<"\n z1="<<(a->z)<<"\t z2="<<(b->z)<<"\n Fx="<<((a->fx)+(b->fx))<<"\n Fy="<<((a->fy)+(b->fy))<<"\n Fz="<<((a->fz)+(b->fz))<<"\n Wx="<<((a->Wx)+(b->Wx))<<"\n Wy="<<((a->Wy)+(b->Wy))<<"\n Wz="<<((a->Wz)+(b->Wz))<<endl;
}
 
void main()
{
    //здесь надо все эти переменные превратить в массив d чтобы дальше можно было бы делать поиск  по массиву определенных параметров у каждой из переменных
    dvig *first,*second;
    int stuff,vxbor,i;
    dvig *d1=new dvig(-2093 ,-1696  ,-57    ,25.36439   ,94.66016   ,0          ,1445.77023     ,-5395.62912    ,107503.29317   );
    dvig *d2=new dvig(-2093 ,-57    ,1696.5 ,94.66016   ,0          ,-25.3644   ,1445.77023     ,107503.29317   ,5395.62912     );
    dvig *d3=new dvig(-2093 ,1695.5 ,57     ,-25.36439  ,94.66016   ,0          ,1445.77023     ,5395.62912     ,-107503.29317  );
    dvig *d4=new dvig(-2093 ,57     ,-1695.5,94.66016   ,0          ,25.3644    ,1445.77023     ,-107503.29317  ,-5395.62912    );
    dvig *d5=new dvig(530       ,-1696  ,-135   ,-94.66016  ,25.36439   ,0          ,3424.19265     ,15618.9264     ,-147100.50466  );
    dvig *d6=new dvig(530       ,132    ,-1706  ,-94.66016  ,0          ,25.3644    ,3348.09948     ,148047.10626   ,12495.14112    );
    dvig *d7=new dvig(530       ,1696   ,135    ,-94.66016  ,-25.36439  ,0          ,3424.19265     ,-15618.9264    ,147100.50466   );
    dvig *d8=new dvig(530       ,-132   ,1706   ,-94.66016  ,0          ,-25.3644   ,3348.09948     ,-148047.10626  ,-12495.14112   );
    dvig *d9=new dvig(329       ,-1758  ,0      ,0          ,98         ,0          ,0              ,0              ,32242          );
    dvig *d10=new dvig(329  ,0      ,-1706  ,0          ,0          ,98         ,0              ,-32242         ,0              );
    dvig *d11=new dvig(329  ,1758   ,0      ,0          ,-98        ,0          ,0              ,0              ,-32242         );
    dvig *d12=new dvig(329  ,0      ,1706   ,0          ,0          ,-98        ,0              ,32242          ,0              );
    dvig *d13=new dvig(329  ,-289   ,1697.5 ,0          ,0          ,-98        ,28322          ,32242          ,0              );
    dvig *d14=new dvig(329  ,289    ,1697.5 ,0          ,0          ,-98        ,-28322         ,32242          ,0              );
    dvig *d15=new dvig(329  ,-289   ,-1697.5,0          ,0          ,98         ,-28322         ,32242          ,0              );
    dvig *d16=new dvig(329  ,289    ,-1697.5,0          ,0          ,98         ,28322          ,32242          ,0              );
    dvig *d17=new dvig(-2093    ,-1695.5,57     ,25.36439   ,94.66016   ,0          ,-1445.77023    ,5395.62912     ,107503.29317   );
    dvig *d18=new dvig(-2093    ,57     ,1695.5 ,94.66016   ,0          ,-25.3644   ,-1445.77023    ,107503.29317   ,-5395.62912    );
    dvig *d19=new dvig(-2093    ,1695.5 ,-57    ,-25.36439  ,94.66016   ,0          ,-1445.77023    ,-5395.62912    ,-107503.29317  );
    dvig *d20=new dvig(-2093    ,-57    ,-1695.5,94.66016   ,0          ,25.3644    ,-1445.77023    ,-107503.29317  ,5395.62912     );
    dvig *d21=new dvig(530  ,-1696  ,135    ,-94.66016  ,25.36439   ,0          ,-3424.19625    ,-15618.9264    ,-147100.50466  );
    dvig *d22=new dvig(530  ,132    ,1706   ,-94.66016  ,0          ,-25.3644   ,-3348.09948    ,-148047.10626  ,12495.14112    );
    dvig *d23=new dvig(530  ,1696   ,-135   ,-94.66016  ,-25.36439  ,0          ,-3424.19625    ,5395.62912     ,147100.50466   );
    dvig *d24=new dvig(530  ,-132   ,-1706  ,-94.66016  ,0          ,25.3644    ,-3348.09948    ,148047.10626   ,-12495.14112   );
    dvig *d25=new dvig(449  ,-1758  ,0      ,0          ,98         ,0          ,0              ,0              ,44002          );
    dvig *d26=new dvig(449  ,0      ,1706   ,0          ,0          ,-98        ,0              ,44002          ,0              );
    dvig *d27=new dvig(449  ,1758   ,0      ,0          ,-98        ,0          ,0              ,0              ,-44002         );
    dvig *d28=new dvig(449  ,0      ,-1706  ,0          ,0          ,98         ,0              ,-44002         ,0              );
    dvig *d29=new dvig(449  ,-289   ,1697.5 ,0          ,0          ,-98        ,28322          ,44002          ,0              );
    dvig *d30=new dvig(449  ,289    ,1697.5 ,0          ,0          ,-98        ,-28322         ,44002          ,0              );
    dvig *d31=new dvig(449  ,-289   ,-1697.5,0          ,0          ,98         ,-28322         ,44002          ,0              );
    dvig *d32=new dvig(449  ,289    ,-1697.5,0          ,0          ,98         ,28322          ,44002          ,0              );
Нужно все переменные д превратить в один массив
не знаю как это сделать-все время проблемы с синтаксисом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 17:27     Не получается создать массив класса
Посмотрите здесь:

C++ При перегрузке оператора для класса не получается использовать имя переменной такое же, как в описании класса
Не получается создать специализацию шаблона класса C++
C++ Создать массив указателей базового класса и присвоить ему адреса каждого из екземпляров класса
C++ Как можно еще создать массив объектов класса
C++ Возможно ли создать массив объектов класса?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
05.11.2013, 18:14     Не получается создать массив класса #2
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
#include <iostream>
using namespace::std;
 
class dvig
{
    friend void sum_all(dvig &,dvig &);
public:
    dvig(long double ,long double,long double ,long double ,long double ,long double ,long double ,long double,long double );
    dvig():x(0),y(0),z(0),fx(0),fy(0),fz(0),Wx(0),Wy(0),Wz(0){}
    void printparametr();
    long double x,y,z,fx,fy,fz,Wx,Wy,Wz;
private :
    static int count;
};
 
void dvig::printparametr()
{
    cout<<"x="<<x<<"y="<<y<<"z="<<z<<"Fx="<<fx<<"Fy="<<fy<<"Fz="<<fz<<"Wx="<<Wx<<"Wy="<<Wy<<"Wz="<<Wz<<endl;
}
 
 
dvig::dvig(long double a,long double b,long double c,long double fx,long double fy,long double fz,long double Wx,long double Wy,long double Wz)
{
    dvig::x=a;
    dvig::y=b;
    dvig::z=c;
    dvig::fx=fx;
    dvig::fy=fy;
    dvig::fz=fz;
    dvig::Wx=Wx;
    dvig::Wy=Wy;
    dvig::Wz=Wz;
}
 
 
void sum_all(dvig *a,dvig *b)
{
    cout<<"summarna9 koordinata parx dvigatelei\n x1="<<(a->x)<<"\t x2="<<(b->x)<<"\n y1="<<(a->y)<<"\t y2="<<(b->y)<<"\n z1="<<(a->z)<<"\t z2="<<(b->z)<<"\n Fx="<<((a->fx)+(b->fx))<<"\n Fy="<<((a->fy)+(b->fy))<<"\n Fz="<<((a->fz)+(b->fz))<<"\n Wx="<<((a->Wx)+(b->Wx))<<"\n Wy="<<((a->Wy)+(b->Wy))<<"\n Wz="<<((a->Wz)+(b->Wz))<<endl;
}
void main()
{  dvig newdv[32];
    return 0;
 
}
создайте конструктор по умолчанию
C++
1
 dvig():x(0),y(0),z(0),fx(0),fy(0),fz(0),Wx(0),Wy(0),Wz(0){}
TSed
19 / 19 / 1
Регистрация: 22.01.2013
Сообщений: 76
05.11.2013, 18:20     Не получается создать массив класса #3
Я бы использовал std::vector, очень удобный динамический массив

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
#include <iostream>
#include <vector>
using namespace::std;
 
class dvig
{
    friend void sum_all(dvig &,dvig &);
public:
    dvig(long double ,long double,long double ,long double ,long double ,long double ,long double ,long double,long double );
    void printparametr();
    long double x,y,z,fx,fy,fz,Wx,Wy,Wz;
private :
    static int count;
};
 
void dvig::printparametr()
{
    cout<<"x="<<x<<"y="<<y<<"z="<<z<<"Fx="<<fx<<"Fy="<<fy<<"Fz="<<fz<<"Wx="<<Wx<<"Wy="<<Wy<<"Wz="<<Wz<<endl;
}
 
 
dvig::dvig(long double a,long double b,long double c,long double fx,long double fy,long double fz,long double Wx,long double Wy,long double Wz)
{
    dvig::x=a;
    dvig::y=b;
    dvig::z=c;
    dvig::fx=fx;
    dvig::fy=fy;
    dvig::fz=fz;
    dvig::Wx=Wx;
    dvig::Wy=Wy;
    dvig::Wz=Wz;
}
 
 
void sum_all(dvig *a,dvig *b)
{
    cout<<"summarna9 koordinata parx dvigatelei\n x1="<<(a->x)<<"\t x2="<<(b->x)<<"\n y1="<<(a->y)<<"\t y2="<<(b->y)<<"\n z1="<<(a->z)<<"\t z2="<<(b->z)<<"\n Fx="<<((a->fx)+(b->fx))<<"\n Fy="<<((a->fy)+(b->fy))<<"\n Fz="<<((a->fz)+(b->fz))<<"\n Wx="<<((a->Wx)+(b->Wx))<<"\n Wy="<<((a->Wy)+(b->Wy))<<"\n Wz="<<((a->Wz)+(b->Wz))<<endl;
}
 
void main()
{
 
    //здесь надо все эти переменные превратить в массив d чтобы дальше можно было бы делать поиск  по массиву определенных параметров у каждой из переменных
    dvig *first,*second;
    int stuff,vxbor,i;
    //объявляем вектор:
    vector <dvig> arr;
    //добавление елеметов в вектор:
    arr.push_back(dvig(-2093 ,-1696  ,-57    ,25.36439   ,94.66016   ,0          ,1445.77023     ,-5395.62912    ,107503.29317   ));
    arr.push_back(dvig(-2093 ,-57    ,1696.5 ,94.66016   ,0          ,-25.3644   ,1445.77023     ,107503.29317   ,5395.62912     ));
    arr.push_back(dvig(-2093 ,1695.5 ,57     ,-25.36439  ,94.66016   ,0          ,1445.77023     ,5395.62912     ,-107503.29317  ));
    //...
    //доступ к элементам возможен по индексу:
    arr[0].printparametr();
    arr[1].printparametr();
}
Qsok
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 7
08.11.2013, 17:24  [ТС]     Не получается создать массив класса #4
TSed, мне нужен именно массив чтобы потом сделать поиск элементов внутри массива
Yandex
Объявления
08.11.2013, 17:24     Не получается создать массив класса
Ответ Создать тему
Опции темы

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