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

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

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

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

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

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

Динамический массив в классе - C++
#include <iostream> #include <stdlib.h> #include <cmath> using namespace std; class Matrix { int **matrix; int i,...

Динамический массив в классе - C++
Существует пример создания динамического двумерного массива: float **Matrix = new float*; for(i = 0; i <SizeOfMatrix;i++) { ...

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

Динамический массив в классе - C++
#include <iostream> #include <string> #include <conio.h> using namespace std; class person{ string name; int year; ...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,133
27.01.2012, 16:25 #2
О, да!
ЗЫ Только поаккуратней, что бы с delete'ом в деструкторе.
1
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 16:44  [ТС] #3
а как?

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

Добавлено через 1 минуту
а вот по поводу второго вопроса?
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
27.01.2012, 17:32 #8
Цитата Сообщение от Андрей2011 Посмотреть сообщение
аа таким же ровно макаром как и не в классе. понял. спасибо.
А с чего бы той же самой операции как-то отличаться
Цитата Сообщение от Андрей2011 Посмотреть сообщение
Вот еще вопрос. если я массиву объектов присваиваю указатель на массив объектов....это правильно?
А вот это Вы продемонстрируйте, а потом уже можно будет понять что именно у вас там получилось.
0
Андрей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 секунды
Т.е. хочу сторонний массив уже созданных объектов. Но так хочу его заполнить чтоб оьъекты за ново не создавались а просто ссылки к ним запоминать.
0
Gepar
1177 / 533 / 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;
2
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
27.01.2012, 17:59  [ТС] #11
спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2012, 17:59
Привет! Вот еще темы с ответами:

Не работает динамический массив в классе: что раньше, указатель или размер? - C++
Подскажите пожалуйста где ошибка class arar { int*arr, size; public: arar() :arr(new int()), size(10) { for (int i(0); i...

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

О потоках std::thread: можно ли вложить потоки друг в друга и можно ли создать динамический массив потоков? - C++
1) Могу ли я вложить потоки друг в друга? 2) Могу ли я создать динамический массив потоков, каким-либо образом инициализировав их потом в...

Создать динамический массив, собирающий значения переменной на каждой итерации цикла - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; using namespace std; int main() { int t, i, ...


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

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

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