Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126
1

Классы, указатель на динамический массив

11.12.2015, 10:45. Показов 1471. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,

Подскажите пожалуйста, в чем моя ошибка, у меня есть класс Треугольник, на основании его мне нужно создать так называемую коллекцию Треугольников,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Triangle
{
    Point*mA;
    Point*mB;
    Point*mC;
}
class TriangleCollection
{
    int _cnt;
    Triangle* _triangles;
public:
TriangleCollection(int n);
}
 
Реализация метода:
 
TriangleCollection::TriangleCollection(int n_
{
_cnt=n;
_triangles=new Triangle[n];
    
for(int i=0; i<n; i++)
    _triangles[i]=new Triangle(rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1);
}
Спасибо заранее
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2015, 10:45
Ответы с готовыми решениями:

Динамический массив и указатель на указатель
Спасибо за внимание) Задача такова: нужно удалить элемент по индексу, при этом уменьшить сам массив...

Написать функцию принимающую массив и возвращающую указатель на динамический массив
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий...

Указатель на динамический массив
Как сделать указатель на размер двухмерного динамического массива? Пробовал int *size_ptr = size,...

динамический массив, указатель
почему нельзя указатель ссылать на другой массив в функции? #include &lt;iostream&gt; #include...

8
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
11.12.2015, 10:48 2
Melany, я так понимаю, это не весь код?
1
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
11.12.2015, 10:49 3
Цитата Сообщение от Melany Посмотреть сообщение
C++
1
_triangles[i]=new Triangle(rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1);
ну triangles это указатель, а _triangles[i] ccылка на объект типа Triangle, а Вы пытаетесь туда указатель запихнуть который вернет метод new
1
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126
11.12.2015, 10:52  [ТС] 4
Kerry_Jr, да, это не весь код, так как сам код большой, тут только суть проблемы

Добавлено через 28 секунд
aLarman,

А как тогда правильно написать?
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
11.12.2015, 11:27 5
Лучший ответ Сообщение было отмечено Melany как решение

Решение

ну, если быть до конца честным то правильнее написать
C++
1
std::vector<Triangle> v;
или
C++
1
std::list<Triangle> l;
и не изобретать велосипедов
(не забудьте тогда определить конструктор копирования о оператор присваивания
C++
1
Triangle(const Triangle & obj)
и
C++
1
const Triangle & operator=(const Triangle& obj)
)

ну а в Вашем варианте или
C++
1
2
3
4
5
6
Triangle ** _arr
 
arr = new Triangle*[n];
//
arr[i] = new Triangle(rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1);
//и т.д
или
C++
1
2
3
4
Triangle * _arr
arr = new Triangle[n];
//
arr[i] = Triangle(rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1, rand()%20+1);
для посл варианта конструктор копирования так же будет необходим(хотя скорее оператор присваивания, но не суть если определять то оба сразу ннадо)
1
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126
12.12.2015, 11:59  [ТС] 6
aLarman, Спасибо!!
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
12.12.2015, 13:31 7
Лучший ответ Сообщение было отмечено Melany как решение

Решение

Melany,
Еще ошибка может возникнуть когда ваши рандомы дадут одну и ту же точку что весьма вероятно и невозможно будет построить треугольник по двум точкам
1
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126
12.12.2015, 14:05  [ТС] 8
anti-k, Спасибо за совет,,,,
Я думала Вы на фазенде,,,
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
12.12.2015, 14:26 9
Melany,

Не по теме:

На моем ранчо есть WIFI

0
12.12.2015, 14:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2015, 14:26
Помогаю со студенческими работами здесь

Динамический массив и указатель
Всем привет. Пытаюсь понять тему динамических массивов. Прошу помочь разобраться в следующем: ...

Умный указатель и динамический массив
Здравствуйте! Есть проблема со следующим заданием. Есть класс умного указателя, используя его...

Указатель на двухмерный динамический массив
Друзья, нужна Ваша помощь! Создаю одномерный динамический, создаю указатель на него (вернее на его...

Нужно сделать указатель на динамический двумерний массив
Есть динамический массив, псевдо-код: #include &lt;iostream&gt; using namespace std; const int x =...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru