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

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

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

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

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

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

Как переместить из стека одного класса в массив другого класса? - C++
// HW_on.24.11_classStack_SantaClaus.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include...

Массив объектов класса как член другого класса - C++
Здравствуйте. У меня тут возникла проблемка #include "main.h" class player { public: player(); player(char*); ...

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса? - C++
я хотел так, но программа просто падает void Student::add(Base** head) { cout << "I here" << endl; this->setName(); //все...

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

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

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

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

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

Как создать массив объектов одного класса в другом, и как к ним обращаться? - C++
вот класс: #include <iostream> #include <string.h> using namespace std; class File { private: char *name, *date; int ...

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.11.2009, 23:11
Ответ Создать тему
Опции темы

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