С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
#1

Динамический массив обьектов в класе - C++

12.05.2013, 14:33. Просмотров 364. Ответов 6
Метки нет (Все метки)

Надо сделать так чтоб в класе был дин.массив обьектов другого класа. создаю я массив через конструктор с параметром(размерность). С созданием класса проблем нету, а вот обьект создаваться не хочет. в чем проблема? что я не так делаю?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class prokat
{
    char corp_name[15];
    prokat(int size)
    {
        tz *arr = new tz[size];
    }
};
 
void main()
{
    int size;
    cin >> size;
    prokat obj(size);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 14:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив обьектов в класе (C++):

Динамический массив в класе - C++
Надо реализовать дин.массив в класе. Насколько знаю надо сделать через конструктор етот массив. Описал массив и фцию для заполнения его...

массив обьектов - C++
здравствуйте! подскажите пожалуйста, что такое обьект массивов? ( искал в учебниках и в интернете тоже,но ничего написанного об этом не...

программа на массив обьектов - C++
Доброе время суток! здесь я попытался написать простенькую программу на массив обьектов,но есть ошибки,я вижу пока только одну,не могли...

Указатель на двухмерный массив обьектов - C++
Допустим есть класс: class a_type { int a,b; public: a_type(int x, int y) { a = x; b = y} }; Дальше в коде мне нужно...

Массив обьектов класса предка и производного - C++
Можно ли, если у меня есть базовый НЕ абстрактный класс и проиводный от него с добавленым полем, допустим, целое число, сделать массив,...

Передать массив обьектов в метод класса - C++
Здраствуйте господа программисты! Подскажите пожалуйста как передать массив обьектов в метод класса: #include <conio.h> #include...

6
GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
12.05.2013, 14:37 #2
C++
1
static
Добавлено через 56 секунд
C++
1
static tz *arr = new tz[size];
1
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
12.05.2013, 14:40  [ТС] #3
GetVariable, всеравно ругаеться
0
GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
12.05.2013, 14:41 #4
Ванги на следующим форуме.

выложите полный код.
0
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
12.05.2013, 14:42  [ТС] #5
GetVariable,
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
#include <iostream>
#include <string>
 
using namespace std;
 
enum CATEGORY{family, sport, cabrio, jeep};
 
const int num = 5;
 
class DATE
 
{
private:
    
    int day, month, year;
public:
 
    DATE(void){};
    DATE(int _day, int _month, int _year) { day = _day; month = _month; year = _year; };
    ~DATE(){};
 
    int GetDay(){return day;}
    int GetMonth(){return month;}
    int GetYear(){return year;}
 
    DATE& SetDay (int _day){day=_day; return *this;};
    DATE& SetMonth (int _month){month=_month; return *this;};
    DATE& SetYear (int _year){year=_year; return *this;};
 
    void inputD(){cout<<"Enter date: ";cin>>day>>month>>year;};
    void showD(){cout<<endl; cout<<day<<"."<<month<<"."<<year;};
};
 
class CAR
{
    char corporation[15];
    char car_name[15];
    int price;
    int made_date;
public:
    void INP()
    {
        cin >> corporation; 
        cin >> car_name;
        cin >> price;
        cin >> made_date;
    }
    void OUT()
    {
        cout << corporation; 
        cout << car_name;
        cout << price;
        cout << made_date;
    }
};
 
class tz
{
    CATEGORY category;
    CAR car;
    DATE date;
    int rent_price;
    int rent_time;
    char car_regnumber[10];
public:
    void tz_data_inp()
    {
        car.INP();
        string str;
        cin >> str;
        if (str == "family") 
            category = family; 
        if (str == "sport") 
            category = sport; 
        if (str == "cabrio") 
            category = cabrio; 
        if (str == "jeep") 
            category = jeep; 
        date.inputD();
        cin >> rent_price;
        cin >> rent_time;
        cin >> car_regnumber;
    }
    void tz_data_out()
    {
        car.OUT();
        char* category_arr[]={"family", "sport", "cabrio", "jeep"};
        cout << category_arr[category];
        date.showD();
        cout << rent_price;
        cout << rent_time;
        cout << car_regnumber;
    }
};
 
class prokat
{
    char corp_name[15];
    prokat(int size)
    {
        static tz *arr = new tz[size];
 
    }
};
 
void main()
{
    int size;
    cin >> size;
    prokat obj(size);
}
0
GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
12.05.2013, 14:46 #6
конструктор в private.

Добавлено через 28 секунд
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
#include <iostream>
#include <string>
 
using namespace std;
 
enum CATEGORY{family, sport, cabrio, jeep};
 
const int num = 5;
 
class DATE
 
{
private:
    
    int day, month, year;
public:
 
    DATE(void){};
    DATE(int _day, int _month, int _year) { day = _day; month = _month; year = _year; };
    ~DATE(){};
 
    int GetDay(){return day;}
    int GetMonth(){return month;}
    int GetYear(){return year;}
 
    DATE& SetDay (int _day){day=_day; return *this;};
    DATE& SetMonth (int _month){month=_month; return *this;};
    DATE& SetYear (int _year){year=_year; return *this;};
 
    void inputD(){cout<<"Enter date: ";cin>>day>>month>>year;};
    void showD(){cout<<endl; cout<<day<<"."<<month<<"."<<year;};
};
 
class CAR
{
    char corporation[15];
    char car_name[15];
    int price;
    int made_date;
public:
    void INP()
    {
        cin >> corporation; 
        cin >> car_name;
        cin >> price;
        cin >> made_date;
    }
    void OUT()
    {
        cout << corporation; 
        cout << car_name;
        cout << price;
        cout << made_date;
    }
};
 
class tz
{
    CATEGORY category;
    CAR car;
    DATE date;
    int rent_price;
    int rent_time;
    char car_regnumber[10];
public:
    void tz_data_inp()
    {
        car.INP();
        string str;
        cin >> str;
        if (str == "family") 
            category = family; 
        if (str == "sport") 
            category = sport; 
        if (str == "cabrio") 
            category = cabrio; 
        if (str == "jeep") 
            category = jeep; 
        date.inputD();
        cin >> rent_price;
        cin >> rent_time;
        cin >> car_regnumber;
    }
    void tz_data_out()
    {
        car.OUT();
        char* category_arr[]={"family", "sport", "cabrio", "jeep"};
        cout << category_arr[category];
        date.showD();
        cout << rent_price;
        cout << rent_time;
        cout << car_regnumber;
    }
};
 
class prokat
{
public:
    char corp_name[15];
    prokat(int size)
    {
        static tz *arr = new tz[size];
 
    }
};
 
void main()
{
    int size;
    cin >> size;
    prokat obj(size);
}
Добавлено через 1 минуту
вот так будет правильнее, без static

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
#include <iostream>
#include <string>
 
using namespace std;
 
enum CATEGORY{family, sport, cabrio, jeep};
 
const int num = 5;
 
class DATE
 
{
private:
    
    int day, month, year;
public:
 
    DATE(void){};
    DATE(int _day, int _month, int _year) { day = _day; month = _month; year = _year; };
    ~DATE(){};
 
    int GetDay(){return day;}
    int GetMonth(){return month;}
    int GetYear(){return year;}
 
    DATE& SetDay (int _day){day=_day; return *this;};
    DATE& SetMonth (int _month){month=_month; return *this;};
    DATE& SetYear (int _year){year=_year; return *this;};
 
    void inputD(){cout<<"Enter date: ";cin>>day>>month>>year;};
    void showD(){cout<<endl; cout<<day<<"."<<month<<"."<<year;};
};
 
class CAR
{
    char corporation[15];
    char car_name[15];
    int price;
    int made_date;
public:
    void INP()
    {
        cin >> corporation; 
        cin >> car_name;
        cin >> price;
        cin >> made_date;
    }
    void OUT()
    {
        cout << corporation; 
        cout << car_name;
        cout << price;
        cout << made_date;
    }
};
 
class tz
{
    CATEGORY category;
    CAR car;
    DATE date;
    int rent_price;
    int rent_time;
    char car_regnumber[10];
public:
    void tz_data_inp()
    {
        car.INP();
        string str;
        cin >> str;
        if (str == "family") 
            category = family; 
        if (str == "sport") 
            category = sport; 
        if (str == "cabrio") 
            category = cabrio; 
        if (str == "jeep") 
            category = jeep; 
        date.inputD();
        cin >> rent_price;
        cin >> rent_time;
        cin >> car_regnumber;
    }
    void tz_data_out()
    {
        car.OUT();
        char* category_arr[]={"family", "sport", "cabrio", "jeep"};
        cout << category_arr[category];
        date.showD();
        cout << rent_price;
        cout << rent_time;
        cout << car_regnumber;
    }
};
 
class prokat
{
public:
    char corp_name[15];
    tz* arr;
    prokat(int size)
    {
       arr = new tz[size];
    }
};
 
void main()
{
    int size;
    cin >> size;
    prokat obj(size);
}
1
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
12.05.2013, 15:50  [ТС] #7
а как мне теперь заполнить каждый обьект из массива значениями? пробую простым способом через цикл но чтото ругаеться
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
#include <iostream>
#include <string>
 
using namespace std;
 
enum CATEGORY{family, sport, cabrio, jeep};
 
const int num = 5;
 
class DATE
 
{
private:
    
    int day, month, year;
public:
 
    DATE(void){};
    DATE(int _day, int _month, int _year) { day = _day; month = _month; year = _year; };
    ~DATE(){};
 
    int GetDay(){return day;}
    int GetMonth(){return month;}
    int GetYear(){return year;}
 
    DATE& SetDay (int _day){day=_day; return *this;};
    DATE& SetMonth (int _month){month=_month; return *this;};
    DATE& SetYear (int _year){year=_year; return *this;};
 
    void inputD(){cout<<"Enter date: ";cin>>day>>month>>year;};
    void showD(){cout<<endl; cout<<day<<"."<<month<<"."<<year;};
};
 
class CAR
{
    char corporation[15];
    char car_name[15];
    int price;
    int made_date;
public:
    void INP()
    {
        cin >> corporation; 
        cin >> car_name;
        cin >> price;
        cin >> made_date;
    }
    void OUT()
    {
        cout << corporation; 
        cout << car_name;
        cout << price;
        cout << made_date;
    }
};
 
class tz
{
    CATEGORY category;
    CAR car;
    DATE date;
    int rent_price;
    int rent_time;
    char car_regnumber[10];
public:
    void tz_data_inp()
    {
        car.INP();
        string str;
        cin >> str;
        if (str == "family") 
            category = family; 
        if (str == "sport") 
            category = sport; 
        if (str == "cabrio") 
            category = cabrio; 
        if (str == "jeep") 
            category = jeep; 
        date.inputD();
        cin >> rent_price;
        cin >> rent_time;
        cin >> car_regnumber;
    }
    void tz_data_out()
    {
        car.OUT();
        char* category_arr[]={"family", "sport", "cabrio", "jeep"};
        cout << category_arr[category];
        date.showD();
        cout << rent_price;
        cout << rent_time;
        cout << car_regnumber;
    }
};
 
class prokat
{ 
    char corp_name[15];
public:
    tz* arr;
    prokat(int size)
    {
       arr = new tz[size];
    }
    void inp_data(int size)
    {
        cin >> corp_name;
        for(int i=0;i<size;i++)
        {
            tz[i].tz_data_inp();
        }
    }
};
 
void main()
{
    int size;
    cin >> size;
    prokat obj(size);
}
Добавлено через 6 минут
все. понял. вместо tz[i].tz_data_inp(); надо было arr[i].tz_data_inp(); писать
0
12.05.2013, 15:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2013, 15:50
Привет! Вот еще темы с ответами:

массив обьектов std::vector (ошибка) - C++
у меня есть class Clients со всеми методами и переменными в другом классе у меня есть std::vector &lt;Clients&gt; List; который я хочу...

Как вернуть массив обьектов для дальнейшей работы с ним? - C++
#include &lt;iostream&gt; class Ex { public: Ex(char *);//конструктор ~Ex();//деструктор (пока не используется) Ex...

Ошибка в класе вектор - C++
У меня есть Класс вектор и в нем видает 3 ошибки error C2065: x: необъявленный идентификатор error C2065: y: необъявленный...

Перегрузка operator+ в собственном класе MyString - C++
Хочу сделать перегрузить оператор +, что бы можно было делать: /* ... */ MyString a = MyString(&quot;name&quot;); MyString b = MyString(&quot;...


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

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

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