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

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

Войти
Регистрация
Восстановить пароль
 
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
#1

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

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

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

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

Как создать массив из класса? - C++
К примеру у меня есть код: CircleShape shape(PLAYER_RADIUS); shape.setPosition(posX-PLAYER_RADIUS, posY-PLAYER_RADIUS); Мне...

Массив как поле класса - C++
Например, имеется класс с полем массивом размерностью 10 на 10. class massiv { private: int mas; public: ... }; ...

Массив как член класса - C++
Почему мне GCC выдаёт ошибку компиляции, что это zero-sized array ? struct Base { const char* d{"f", "f"}; }; ISO C++...

Статический массив как член класса - C++
Я туплю, что ли, почему это компилируется? о_О struct V { int v; }; V v1; V v2(v1); // копирование v2 = v1; //...

Массив, как поле данных класса - C++
Как правильно обьявить массив char как элемент данных класса и проинициализировать его нулями в конструкторе??

Как записать два разных класса в массив? - C++
допустим есть vector<class_a> cont_a; vector<class_b> cont_b; // тут мы их заполнили допустим по 800 элементов в каждом векторе.и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ProNoooob
72 / 72 / 6
Регистрация: 14.10.2009
Сообщений: 121
28.11.2009, 20:34     массив, как элемент класса #2
C++
1
2
3
4
5
class
{
public:
int massiv[256];
};
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
28.11.2009, 20:43  [ТС]     массив, как элемент класса #3
это я знаю... да я не совсем корректно высказался...
нужен вариант с переменной (константной или неконстантной), а не с постоянной в роли размерности....
ProNoooob
72 / 72 / 6
Регистрация: 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;
};
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
28.11.2009, 20:55     массив, как элемент класса #5
ProNoooob, тогда уж new выделяй а не mallocom massiv = new int [ 100 ] ;
ProNoooob
72 / 72 / 6
Регистрация: 14.10.2009
Сообщений: 121
28.11.2009, 20:58     массив, как элемент класса #6
Цитата Сообщение от Андрейка Посмотреть сообщение
ProNoooob, тогда уж new выделяй а не mallocom massiv = new int [ 100 ] ;
У new убогий синтаксис. Абсолютно не понятный с точки зрения кошерного C.
Память под все, кроме классов выделяю маллоком.
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
28.11.2009, 21:06  [ТС]     массив, как элемент класса #7
а size получается у нас не является переменной...?можно SIZE описывать в качестве элемента класса?
ProNoooob
72 / 72 / 6
Регистрация: 14.10.2009
Сообщений: 121
28.11.2009, 21:18     массив, как элемент класса #8
Цитата Сообщение от velodro Посмотреть сообщение
а size получается у нас не является переменной...?можно SIZE описывать в качестве элемента класса?
только в примере с маллоком ну или new
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
28.11.2009, 21:20     массив, как элемент класса #9
ProNoooob, ну так человек пишет на плюсах, а не на си! так что не надо тут со своими маллоками!

ну, в случае с new - можно. но нужно понимать, что само изменение переменной не изменит размер массива и его нужно будет пересоздать.
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
28.11.2009, 21:22  [ТС]     массив, как элемент класса #10
то есть только через дерективу #define?
ProNoooob
72 / 72 / 6
Регистрация: 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];
}
};
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 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);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2009, 23:11     массив, как элемент класса
Еще ссылки по теме:

Большой двумерный массив как член класса - C++
Размеры массива 2048 на 512. Создал, заполняю в конструкторе, но результата нету. Такое вообще реально, без динамического выделения памяти?

обращение к элементу массива (массив как поле класса) - C++
есть класс с массивом class ArrayPixel { public: byte*** pixel; ArrayPixel(int, int); ~ArrayPixel(void); private:

Как можно еще создать массив объектов класса - C++
допустим у меня есть основной класс и куча классов что наследуют его. помню видео в котором говорили что типа виртуальные функции и...

Как заполнить массив элементов класса из текстового файла - C++
Всем доброго времени суток, возникла небольшая проблема, есть текстовый файл, который содержит массив элементов класса, Элементы класса...

Как вернуть из функции указатель на массив элементов класса - C++
Здравствуйте! Возникла такая проблема. Есть класс, созданный мной. Функция формирует массив элементов этого класса (массив...


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

Или воспользуйтесь поиском по форуму:
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
28.11.2009, 23:11  [ТС]     массив, как элемент класса #13
всем спасибо, мне стало значительно легче!
Yandex
Объявления
28.11.2009, 23:11     массив, как элемент класса
Ответ Создать тему
Опции темы

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