Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
 Аватар для inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163

Реализовать движущийся графический объект с помощью статических и динамических объектов

18.03.2016, 08:23. Показов 3016. Ответов 14

Студворк — интернет-сервис помощи студентам
Добрый день.

Решаю задачу из методички и поставлена она следующим образом: используя технологию объектно-ориентированного программирования разработать два варианта программы, реализующей движущийся графический объект в соответствии с индивидуальным заданием:
- с использованием статического объекта;
- с использованием динамического объекта.

Собственно, меня интересует что подразумевается(по вашему мнению) под статическим и динамическим объектом.
Беглое гугление не дало какого-то определённого ответа(кое-где речь ведётся о выделении памяти, но я не понимаю принципиальную разницу между подходами к выделению памяти в рамках данной задачи). Поскольку задача находится в разделе "Классы. Объекты.", то я предполагаю, что ответ лежит в плоскости С++ и не имеет отношения к графической части задачи(могу ошибаться).
Буду рад услышать мнения по поводу вопроса выше. Кидайте в меня ссылками на релевантный материал, если что.

Спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2016, 08:23
Ответы с готовыми решениями:

Вывести эдементы матрицы с помощью статических и динамических массивов
помогите, пожалуйста, как написать код в с++. Дана матрица размера A * B. Вывести ее элементы в следующем порядке: первый столбец...

Методы сортировки статических и динамических массивов
Наверное, самая тяжёлая работа, с которой пришлось столкнуться... Как это делать? Нужно вариант для одномерных статистических и вариант...

Использование статических методов класса в динамических библиотеках
Здравствуйте. Прочитав пару тредов, статтей, да поклацав в компилятор у меня получилось слинковать обычную функцию. А как быть с...

14
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,234
18.03.2016, 08:34
Лучший ответ Сообщение было отмечено Ilot как решение

Решение

Предполагаю, что подразумевается либо простое объявление объекта, либо через new
C++
1
2
3
4
5
6
7
8
9
10
11
class MoveObject
{
...
};
int main()
{
   MoveObject Obj1; // 1 вариант статический объект
   MoveObject* pObj2=new MoveObject; // 2 вариант динамический объект
   ....
   delete pObj2; 
}
1
 Аватар для inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
18.03.2016, 08:35  [ТС]
zss, да, я тоже склоняюсь к этому варианту, но, как и сказал в первом посте, не понимаю зачем это нужно для данной задачи :\
Просто чтобы было?
0
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,234
18.03.2016, 08:37
С точки зрения обучения - для понимания разницы этих способов.
В частности, обратить внимание на моменты вызова конструктора и деструктора.
0
 Аватар для inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
18.03.2016, 08:40  [ТС]
zss, для статических объектов он(деструктор) будет автоматически вызван при выходе за границы видимости области, где он был объявлен, а для динамических - при явном вызове, я правильно понимаю?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
18.03.2016, 09:08
Цитата Сообщение от zss Посмотреть сообщение
С точки зрения обучения - для понимания разницы этих способов.
Эта разница по идее проходится задолго до того как начинают создавать графические приложения.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
18.03.2016, 10:52
Имхо, вместо "статический объект" тут должно быть "объект на стеке", вместо "динамический" - "в куче".
Цитата Сообщение от inviter42 Посмотреть сообщение
и не имеет отношения к графической части задачи(могу ошибаться).
Из-за имеющеюся формулировки трудно однозначно сказать. Т.к. под динамическим объектом может пониматься движущийся объект, а под статическим - неподвижный. Правда, опять-таки, вместо "статический" в таком случае следовало бы написать "статичный".
Короче говоря, бить надо больно авторов таких методичек.
0
 Аватар для inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
18.03.2016, 11:02  [ТС]
Цитата Сообщение от Tulosba Посмотреть сообщение
Короче говоря, бить надо больно авторов таких методичек.
Я плачу горючими слезами, потому как там вся методичка такая. ТЗ поставлены абы как, формулировки туманные. Такое ощущение, что методичка не для программистов, а для ясновидцев.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
18.03.2016, 11:02
Цитата Сообщение от Tulosba Посмотреть сообщение
вместо "статический объект" тут должно быть "объект на стеке"
может подразумевался глобальный объект?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
18.03.2016, 11:48
Цитата Сообщение от Kastaneda Посмотреть сообщение
может подразумевался глобальный объект?
Сомнительно. Т.к. это не стыкуется с "динамическим". Если конечно под "динамическим" не начать понимать в этом случае "локальный", т.е. "объект на стеке". Но это полный алес тогда будет
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
18.03.2016, 12:01
Цитата Сообщение от inviter42 Посмотреть сообщение
Я плачу горючими слезами, потому как там вся методичка такая.
Хм, речь про эту методичку? Действительно, там и дальше что-то странное. После пункта "Дерево наследования должно содержать не менее трех уровней." встает вопрос чем в представлении авторов является объектно-ориентированное программирование. Потому как если делать графику через объектно-ориентированный Qt, выстрадать три уровня наследования будет сложновато. А если никаких сторонних библиотек не использовать, так чистые плюсы библиотек для графики просто не имеют.
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
//Виджет с движением любой фигни по окружности
#ifndef MYOBJECT_H
#define MYOBJECT_H
#include<QTimer>
#include<QPainter>
#include<QImage>
#include<cmath>
#include<QWidget>
 
class MyObject:public QWidget
{
    Q_OBJECT
public:
    MyObject(QWidget*parent=0):QWidget(parent){updateImage();}
    void paintEvent(QPaintEvent*){
        //В object.jpg лежит изображение нужной фигни
        QPainter(this).drawImage(100+sin(angle)*100,100+cos(angle)*100,QImage("object.jpg"));
    }
public slots:
    void updateImage(){
        angle+=3.14/100;
        update();
        QTimer::singleShot(100,this,SLOT(updateImage()));
    }
private:
    double angle=0;
};
#endif // MYOBJECT_H
1
 Аватар для inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
18.03.2016, 13:34  [ТС]
Renji, у меня ваша ссылка артичится открываться. Речь идёт об этой методичке.
И да, там, конечно, не сказано, как именно нужно создавать "любую фигню", но я полагаю, что подразумевается "геометрическое" построение, а не картинка. Хотя, конечно, явно об этом нигде не сказано, поэтому можно сделать это на собственное усмотрение.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
18.03.2016, 13:40
Цитата Сообщение от inviter42 Посмотреть сообщение
И да, там, конечно, не сказано, как именно нужно создавать "любую фигню", но я полагаю, что подразумевается "геометрическое" построение, а не картинка.
Да не принципиально.
C++
1
2
//вот так будет геометрический кружок
QPainter(this).drawEllipse(100+sin(angle)*100,100+cos(angle)*100,20,20);
1
 Аватар для inviter42
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
18.03.2016, 13:42  [ТС]
Renji, да, спасибо. Ссылку я таки открыл и да, это она самая(и лаба, и методичка).
0
18.03.2016, 15:27

Не по теме:

с костылями, или без.
"используя технологии ооп" - неточное условие.
"реализующий движущийся графический объект" - показывать на экранчике же что-то будет нужно?
----
ооп допускает использование костылей. "индивидуальное задание" может значить,
что в каком то контексте вам нужно отсечь попытки впихнуть уже имеющееся криво или прямо сделанное.
также, приведённая в сообщение2 попытка указать статический и динамический объекты в одной структуре -
=неприемлемо.
это нарушает принципы ооп. мыслимые, и немыслимые.
статический объект - может быть жестко ограничен. при этом он остаётся полноценным.
динамический объект - иногда производное, иногда самостоятельное.
- динамическому объекту вы можете многа_памяти дать, можете не дать, он может быть реконструирован после деградации.
-----------------
к примеру, видео-трансляция теннисного матча. принципиально криво сделанный флэш - не может
приоритезировать объекты. мяч он часто рисует не там, где он на самом деле есть.
то есть, во время трансляции - с экрана - прекрасно видно: мяч пролетел мимо поля.
но "эта дура" зачем-то заявляет протест судъе. предъявляется повтор, и там совершенно понятно:
- да, она дура(слово же не воробей). но мяч - был в поле.
но "почему то" продолжают юзать флеш.
*он показывает поле, линии, что угодно.
но не может(ггг) показать мяч.
даже если передать координату, и сказать "дорисуй мяч" - он не сможет.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2016, 15:27
Помогаю со студенческими работами здесь

Конфликт динамических и статических объектов
Здравствуйте, на днях столкнулся с проблемой: при обработке событий динамически созданных объектов нет доступа к статическим объектам...

Движущийся графический объект
Используя технологию объектно-ориентированного программирования разработать два варианта программы, реализующей движущийся графический...

Реализация списков с помощью цепочек динамических объектов
Здравствуйте, форумчане! Проблема с реализацией списков с помощью цепочек динамических объектов. Вот написал программу, но она не...

написать программу движущийся графический объект с двумя способоми с использованием статического объекта и с использованием динамического объекта
Движение закрашенного прямоугольника по треугольному контуру с изменением цвета при изменении направления движения.

Реализовать программу с помощью динамических переменных
Что делает программа: Если строка начинается с цифры, то перед ней ставиться левая круглаяскобка, а в конец строки - правая круглая скобка ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru