Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Андрей2011
171 / 23 / 4
Регистрация: 18.01.2011
Сообщений: 359
#1

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++

27.01.2012, 16:23. Просмотров 2796. Ответов 10
Метки нет (Все метки)

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

Динамический массив в классе
#include <iostream> #include <stdlib.h> #include <cmath> using namespace...

Динамический массив в классе
#include <iostream> #include <string> #include <conio.h> using namespace...

Динамический массив в классе
Вот сделал функцию для заполнения массива void rand_vvod(int a1, int b1, int...

Динамический массив в классе
Здравствуйте! Я пишу программу, в ней мне необходимо сделать иерархию, и в...

Динамический массив в классе
Существует пример создания динамического двумерного массива: float **Matrix =...

Как добавлять предметы в динамический char массив в классе
Народ скажите пожалуйста есть в классе дин массив символьного типа как...

10
dimcoder
Полярный
467 / 440 / 157
Регистрация: 11.09.2011
Сообщений: 1,142
27.01.2012, 16:25 #2
О, да!
ЗЫ Только поаккуратней, что бы с delete'ом в деструкторе.
1
Андрей2011
171 / 23 / 4
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 16:44  [ТС] #3
а как?

Добавлено через 2 минуты
Вот еще вопрос. если я массиву объектов присваиваю указатель на массив объектов....это правильно?
Ну т.е. мне нужно в массиве объектов хранить ссылки на объекты. чтоб не копировались. соотв. нужно интерпретировать с указателем, верно?
0
fasked
Эксперт С++
4976 / 2556 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.01.2012, 16:45 #4
Андрей2011, std::vector вам в руки.
1
Андрей2011
171 / 23 / 4
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 16:47  [ТС] #5
C++
1
2
3
4
5
6
7
8
TPoint Point[10],*p_Point;
p_Point = Point;
 
TPoint Mass[10];
for (i=0; i<10; i++)
{
   Mass[i] = p_Point[i]; //вот не задвоятся ли у меня объекты? Правильно ли я делаю?
}
Добавлено через 41 секунду
а да. вектор. точно. спасибо. а вот со вторым вопросом бы разобраться.
0
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
27.01.2012, 16:56 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
class Test
{
    int *x;
 
public:
    Test(int number){x=new int[number];}
    ~Test(){delete []x;}
};
 
int main()
{
    Test *obj= new Test(10);
    delete obj;
    return 0;
}
Комментарии полагаю излишни или всё же нужны?
1
Андрей2011
171 / 23 / 4
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 17:05  [ТС] #7
аа таким же ровно макаром как и не в классе. понял. спасибо.

Добавлено через 1 минуту
а вот по поводу второго вопроса?
0
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
27.01.2012, 17:32 #8
Цитата Сообщение от Андрей2011 Посмотреть сообщение
аа таким же ровно макаром как и не в классе. понял. спасибо.
А с чего бы той же самой операции как-то отличаться
Цитата Сообщение от Андрей2011 Посмотреть сообщение
Вот еще вопрос. если я массиву объектов присваиваю указатель на массив объектов....это правильно?
А вот это Вы продемонстрируйте, а потом уже можно будет понять что именно у вас там получилось.
0
Андрей2011
171 / 23 / 4
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 17:43  [ТС] #9
C++
1
2
3
4
5
6
7
8
TPoint Point[10],*p_Point;
p_Point = Point;
 
TPoint Mass[10];
for (i=0; i<10; i++)
{
   Mass[i] = p_Point[i]; //вот не задвоятся ли у меня объекты? Правильно ли я делаю?
}
Добавлено через 44 секунды
Т.е. хочу сторонний массив уже созданных объектов. Но так хочу его заполнить чтоб оьъекты за ново не создавались а просто ссылки к ним запоминать.
0
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
27.01.2012, 17:53 #10
Андрей2011, естественно элементы будут копироваться в цикле. Mass у вас ведь обычный статический массив, ему пофиг на существование массивов указателей так что он будет в любом случае копировать значения.

Добавлено через 3 минуты
Если вам нужно сделать чтобы Mass указывал на ту же память что и p_Point то нужно всего лишь
C++
1
2
TPoint *Mass;
Mass = p_Point;
2
Андрей2011
171 / 23 / 4
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 17:59  [ТС] #11
спасибо
0
27.01.2012, 17:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2012, 17:59
Привет! Вот еще темы с решениями:

Создать динамический массив, любого простого типа (например: int, long, float, double)
1. Создать проект, который содержит консольную программу Win32. 2. Создать...

Двумерный динамический массив в классе. Зависание при вводе и вызове деструктора
Объект класса содержит двумерный массив строк фиксированного размера(80) и...

Не работает динамический массив в классе: что раньше, указатель или размер?
Подскажите пожалуйста где ошибка class arar { int*arr, size; public:...

Можно ли создавать массив строк (string)?
А можно ли в с++ создавать массив строк? Например string a ?


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

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

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