Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
velodro
72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78
1

массив, как элемент класса

28.11.2009, 20:22. Просмотров 900. Ответов 12
Метки нет (Все метки)

как создать элемент класса - массив?
в структурах это было можно, а в классах?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2009, 20:22
Ответы с готовыми решениями:

Как переместить из стека одного класса в массив другого класса?
// HW_on.24.11_classStack_SantaClaus.cpp: определяет точку входа для...

Массив объектов одного класса как поле другого класса
Доброе время суток. Мне тут в универе задали лабу, нужно создать класс полем...

Массив объектов класса как член другого класса
Здравствуйте. У меня тут возникла проблемка #include "main.h" class...

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса?
я хотел так, но программа просто падает void Student::add(Base** head) {...

Как обратиться к элементам класса? (сначала создать элемент)
Никак не получается дать какое-то значение элементу класса. если так, нужно...

12
ProNoooob
77 / 77 / 8
Регистрация: 14.10.2009
Сообщений: 121
28.11.2009, 20:34 2
C++
1
2
3
4
5
class
{
public:
int massiv[256];
};
1
velodro
72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78
28.11.2009, 20:43  [ТС] 3
это я знаю... да я не совсем корректно высказался...
нужен вариант с переменной (константной или неконстантной), а не с постоянной в роли размерности....
0
ProNoooob
77 / 77 / 8
Регистрация: 14.10.2009
Сообщений: 121
28.11.2009, 20:50 4
C++
1
2
3
4
5
6
7
#define SIZE 256
 
class Test
{
public:
int massiv[SIZE];
};
или
C++
1
2
3
4
5
6
7
8
9
10
#define SIZE 256
class Test
{
public:
Test()
{
    massiv = (int *)malloc(SIZE * sizeof(int));
}
int *massiv;
};
0
Андрейка
422 / 226 / 87
Регистрация: 25.03.2009
Сообщений: 744
28.11.2009, 20:55 5
ProNoooob, тогда уж new выделяй а не mallocom massiv = new int [ 100 ] ;
0
ProNoooob
77 / 77 / 8
Регистрация: 14.10.2009
Сообщений: 121
28.11.2009, 20:58 6
Цитата Сообщение от Андрейка Посмотреть сообщение
ProNoooob, тогда уж new выделяй а не mallocom massiv = new int [ 100 ] ;
У new убогий синтаксис. Абсолютно не понятный с точки зрения кошерного C.
Память под все, кроме классов выделяю маллоком.
0
velodro
72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78
28.11.2009, 21:06  [ТС] 7
а size получается у нас не является переменной...?можно SIZE описывать в качестве элемента класса?
0
ProNoooob
77 / 77 / 8
Регистрация: 14.10.2009
Сообщений: 121
28.11.2009, 21:18 8
Цитата Сообщение от velodro Посмотреть сообщение
а size получается у нас не является переменной...?можно SIZE описывать в качестве элемента класса?
только в примере с маллоком ну или new
0
Lolcht0
123 / 121 / 0
Регистрация: 30.03.2009
Сообщений: 766
28.11.2009, 21:20 9
ProNoooob, ну так человек пишет на плюсах, а не на си! так что не надо тут со своими маллоками!

ну, в случае с new - можно. но нужно понимать, что само изменение переменной не изменит размер массива и его нужно будет пересоздать.
1
velodro
72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78
28.11.2009, 21:22  [ТС] 10
то есть только через дерективу #define?
0
ProNoooob
77 / 77 / 8
Регистрация: 14.10.2009
Сообщений: 121
28.11.2009, 21:33 11
Цитата Сообщение от Lolcht0 Посмотреть сообщение
ProNoooob, ну так человек пишет на плюсах, а не на си! так что не надо тут со своими маллоками!

ну, в случае с new - можно. но нужно понимать, что само изменение переменной не изменит размер массива и его нужно будет пересоздать.
Ну да точно. Человек "пишет" на плюсах.


то есть только через дерективу #define?
омг нет!!!

вот пример.

C++
1
2
3
4
5
6
7
8
9
10
11
12
class Test
{
private:
unsigned int size; 
public:
int *massiv;     //Указатель на инт
Test()             //конструктор. Но все это делать можно и в любых других функциях этого класса.
{
    size = 20;
    massiv = new int[size];
}
};
0
valeriikozlov
Эксперт С++
4686 / 2512 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
28.11.2009, 21:43 12
или так:
C++
1
2
3
4
5
6
7
8
9
10
11
class Test
{
private:
 
public:
int *massiv;     //Указатель на инт
Test(int size)      //конструктор. Но все это делать можно и в любых других функциях этого класса.
{
      massiv = new int[size];
}
};
Тогда можно сразу объявлять экземпляр класса так: Test Mytest(20);
0
velodro
72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78
28.11.2009, 23:11  [ТС] 13
всем спасибо, мне стало значительно легче!
0
28.11.2009, 23:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2009, 23:11

Как создать элемент вектора пользовательского типа(класса)?
Делаю змейку в консоли, а по сути тренируюсь с классами и векторами. Есть...

Изменение статического закрытого элемента данных класса посредством статической элемент-функции класса
Добрый день. Не могу разобраться, как изменить закрытую статическую переменную...

Массив: Не знаю, как упорядоченно вставить элемент в массив...
Есть массив a={5,4,2,1} и массив b Нужно вставить число r=3 в b, и все...


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

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

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