С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для XoPToN
1 / 2 / 0
Регистрация: 20.01.2017
Сообщений: 52

Из агрегации сделать композицию

26.06.2017, 13:10. Показов 1396. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добавить к программе класс, который будет содержать в себе несколько объектов класса Figura, создавая тем самым композицию.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
using namespace std;
 
//класс "точка"
class Point
 {
  //кооординаты
  int X;
  int Y;
  public:
    //конструктор
    Point()
     {
      X=Y=0;
     }
    //установка координат
    void SetPoint(int iX, int iY)
     {
      X=iX;
      Y=iY;
     }
    //демонстрация координат
    void Show()
     {
      cout << "----------------------------\n\n";
      cout << X << "\t" << Y << "\n\n";
      cout << "----------------------------\n\n";
     }
 };
 
//класс фигура
class Figura
 {
  //агрегация точки
  //(координаты углов)
  Point* obj;
  //количество углов
  int count;
  //цвет фигуры
  int color;
  public:
    //конструктор
    Figura()
     {
      count=color=0;
      obj=NULL;
     }
    //создание фигуры
    void CreateFigura(int cr,int ct)
     {
      //если углов меньше трех — это не фигура
      if(ct<3)
       exit(0);
      //инициализация цвета и количества углов
      count=ct;
      color=cr;
      //выдделение памяти под массив точек
      obj=new Point[count];
      if(!obj)
       exit(0);
      //установка координат точек
      int tempX, tempY;
      for(int i=0;i<count;i++)
       {
        cout << "Set X\n";
        cin >> tempX;
        cout << "Set Y\n";
        cin >> tempY;
        obj[i].SetPoint(tempX,tempY);
       }
     }
    //показ фигуры
    void ShowFigura()
     {
      cout << "----------------------------\n\n";
      cout << "Color" << color << "\n\nPoints - " << count << "\n\n";
      for(int i=0;i<count;i++)
       {
        obj[i].Show();
       }
     }
    //если фигура была, то очистить память
    ~Figura()
     {
      if(obj!=NULL)
       delete[]obj;
     }
 };
 
void main()
 {
  Figura f;
  f.CreateFigura(255,3);
  f.ShowFigura();
 }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.06.2017, 13:10
Ответы с готовыми решениями:

Как сделать композицию классов разнесённых по разным файлам
На сколько реально сделать композицию классов разнесённых по файлам, при этом подъинклудить вложенные классы в файле .cpp ? ...

Нужно сделать композицию классов через объектные поля. (Не наследование!)
Здравствуйте, у вас я тут впервые. Можете помочь с одним школьным заданием для моей подруги. Задача: //Реализовать класс Money...

Есть ли простой способ сделать две агрегации в одном запросе?
Есть таблица Order ( PointId(айди клиента) , OrderId , OrderDate) Есть таблица OrderItem (OrderId , Quantity) Мне нужно для...

3
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
26.06.2017, 14:31
агрегация
C++
1
2
3
4
5
class Figura
{
private:
    Point *point;
};
композиция
C++
1
2
3
4
5
class Figura
{
private:
    Point point;
};
https://ru.wikipedia.org/wiki/... %B8%D0%B5)
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
26.06.2017, 14:58
Указатель может указывать на один элемент, а не динамический массив. Тем более с таким названием.
Лучше написать так:
C++
1
std::vector<Point> points;
0
 Аватар для XoPToN
1 / 2 / 0
Регистрация: 20.01.2017
Сообщений: 52
27.06.2017, 16:49  [ТС]
а как конкретно сделать не подскажите?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.06.2017, 16:49
Помогаю со студенческими работами здесь

Ускорение агрегации
Есть склад, на него приходит товары, с него уходят товары. Храним в базе: момент времени, товар, количество расхода/прихода. Нужно...

Отношения агрегации
Доброго времени суток. Помогите, пожалуйста, с решением задачи: &quot;При помощи отношения агрегации задать два класса: двигатель и поршень. У...

Реализация агрегации
можете показать кусок программы в которой будет реализована агрегации

По агрегации портов
Добрый день, господа. Настраиваю агрегацию портов и возникли некоторые проблемы. Есть два коммутатора: catalyst 3750 и linksys...

Странная ошибка при агрегации
Привет, товарищи, столкнулся с нетривиальной проблемой, собственно сразу к ней. Есть 2 класса (напишу лишь проблемные методы, как ни...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru