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

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

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

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

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

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

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

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

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

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

12
ProNoooob
76 / 76 / 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
76 / 76 / 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
Андрейка
421 / 225 / 87
Регистрация: 25.03.2009
Сообщений: 744
28.11.2009, 20:55 #5
ProNoooob, тогда уж new выделяй а не mallocom massiv = new int [ 100 ] ;
0
ProNoooob
76 / 76 / 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
76 / 76 / 8
Регистрация: 14.10.2009
Сообщений: 121
28.11.2009, 21:18 #8
Цитата Сообщение от velodro Посмотреть сообщение
а size получается у нас не является переменной...?можно SIZE описывать в качестве элемента класса?
только в примере с маллоком ну или new
0
Lolcht0
123 / 121 / 1
Регистрация: 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
76 / 76 / 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
Эксперт С++
4683 / 2509 / 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, и все...

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

Как создать массив объектов одного класса в другом, и как к ним обращаться?
вот класс: #include <iostream> #include <string.h> using namespace std; ...


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

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

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