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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
#1

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

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

Динамические массивы привлекают больше.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2012, 16:23     Можно ли в классе создавать массив переменной длинны. Например динамический массив?
Посмотрите здесь:
Динамический массив в классе C++
Динамический массив в классе C++
C++ Динамический массив в классе
Динамический массив в классе C++
Создать динамический массив, любого простого типа (например: int, long, float, double) C++
Не работает динамический массив в классе: что раньше, указатель или размер? C++
Двумерный динамический массив в классе. Зависание при вводе и вызове деструктора C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
454 / 427 / 66
Регистрация: 11.09.2011
Сообщений: 1,129
27.01.2012, 16:25     Можно ли в классе создавать массив переменной длинны. Например динамический массив? #2
О, да!
ЗЫ Только поаккуратней, что бы с delete'ом в деструкторе.
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 16:44  [ТС]     Можно ли в классе создавать массив переменной длинны. Например динамический массив? #3
а как?

Добавлено через 2 минуты
Вот еще вопрос. если я массиву объектов присваиваю указатель на массив объектов....это правильно?
Ну т.е. мне нужно в массиве объектов хранить ссылки на объекты. чтоб не копировались. соотв. нужно интерпретировать с указателем, верно?
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.01.2012, 16:45     Можно ли в классе создавать массив переменной длинны. Например динамический массив? #4
Андрей2011, std::vector вам в руки.
Андрей2011
29 / 23 / 2
Регистрация: 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 секунду
а да. вектор. точно. спасибо. а вот со вторым вопросом бы разобраться.
Gepar
1175 / 531 / 20
Регистрация: 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;
}
Комментарии полагаю излишни или всё же нужны?
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 17:05  [ТС]     Можно ли в классе создавать массив переменной длинны. Например динамический массив? #7
аа таким же ровно макаром как и не в классе. понял. спасибо.

Добавлено через 1 минуту
а вот по поводу второго вопроса?
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
27.01.2012, 17:32     Можно ли в классе создавать массив переменной длинны. Например динамический массив? #8
Цитата Сообщение от Андрей2011 Посмотреть сообщение
аа таким же ровно макаром как и не в классе. понял. спасибо.
А с чего бы той же самой операции как-то отличаться
Цитата Сообщение от Андрей2011 Посмотреть сообщение
Вот еще вопрос. если я массиву объектов присваиваю указатель на массив объектов....это правильно?
А вот это Вы продемонстрируйте, а потом уже можно будет понять что именно у вас там получилось.
Андрей2011
29 / 23 / 2
Регистрация: 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 секунды
Т.е. хочу сторонний массив уже созданных объектов. Но так хочу его заполнить чтоб оьъекты за ново не создавались а просто ссылки к ним запоминать.
Gepar
1175 / 531 / 20
Регистрация: 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;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2012, 17:59     Можно ли в классе создавать массив переменной длинны. Например динамический массив?
Еще ссылки по теме:
Можно ли создавать массив строк (string)? C++
О потоках std::thread: можно ли вложить потоки друг в друга и можно ли создать динамический массив потоков? C++
C++ Создать динамический массив, собирающий значения переменной на каждой итерации цикла
Можно ли индексировать одномерный динамический массив с 1? C++
Можно ли инициализировать динамический массив не используя цикл? C++

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

Или воспользуйтесь поиском по форуму:
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 17:59  [ТС]     Можно ли в классе создавать массив переменной длинны. Например динамический массив? #11
спасибо
Yandex
Объявления
27.01.2012, 17:59     Можно ли в классе создавать массив переменной длинны. Например динамический массив?
Ответ Создать тему
Опции темы

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