|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
SFML. Вектора, массивы, классы, объекты01.11.2017, 21:59. Показов 6404. Ответов 67
Доброго времени суток форумчане!
Возникла проблема с векторами. но понимаю как работают эти самые векторы. Задача такова, есть абстрактный класс Object с какими-то функциями(это не столь важно). Так же есть дочерние классы такие как Circle и Circle2. В главной функции создаются новые объекты дочерних классов и заносятся в массив. НО когда хочу сделать через вектор то выдаёт ошибку: "error: 'vector' does not name a type". так же по мере решения это проблемы будет ещё несколько вопросов таких как: "Как реализовать уничтожение объектов Массива/Вектора", "Как сделать универсальную функцию определения координат курсора в окне"
0
|
|
| 01.11.2017, 21:59 | |
|
Ответы с готовыми решениями:
67
Не отрисовываются объекты openGL3.0 в SFML Из первых четырех строк массива сформировать четыре новых вектора (одномерные массивы). Для каждого вектора найти сумму Классы и объекты |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 22:05 | |
|
Ты заголовок подключил?
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 01.11.2017, 22:10 [ТС] | |
|
Какой заголовок? Заголовочный файл? Как эти файлы работают я не особо понимаю...
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 22:44 | |
|
<vector> подключил?
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 01.11.2017, 22:45 [ТС] | |
|
да но не работает...
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 22:46 | |
|
Показывай.
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
||||||
| 01.11.2017, 22:49 [ТС] | ||||||
|
Вот как я создаю вектор
Добавлено через 1 минуту ||=== Build file: "no target" in "no project" (compiler: unknown) ===| |8|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11| |8|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11| |13|error: 'vector' does not name a type| ||=== Build failed: 1 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===| Это всё сообщение после сборки...
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 22:49 | |
|
std::vector сделай. Если не заработает, значит ты не подключил заголовок.
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
||||||
| 01.11.2017, 22:54 [ТС] | ||||||
|
Оп... Точно, чего-то не думал что в этом может быть проблема
Добавлено через 55 секунд тогда следующий вопрос Добавлено через 1 минуту Вот часть кода в отдельном файле
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 22:56 | |
|
Текст ошибки где?
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
||||||||||||||||
| 01.11.2017, 22:59 [ТС] | ||||||||||||||||
|
В главном методе создаю окно
0
|
||||||||||||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 23:04 | |
|
Тип второго параметра не верный. Может, там другой window?
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
||||||
| 01.11.2017, 23:07 [ТС] | ||||||
|
вот часть кода в Circle2
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 23:08 | |
|
Ну так зачем ты двойной указатель передаёшь? Убери амперсанды.
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
||||||
| 01.11.2017, 23:11 [ТС] | ||||||
|
хорошо но тогда ошибка тоже... сейчас покажу
Добавлено через 1 минуту ||=== Build file: "no target" in "no project" (compiler: unknown) ===| |8|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11| |8|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11| ||In function 'int mouse_xy(bool, sf::RenderWindow*)':| ->|5|error: redefinition of 'int mouse_xy(bool, sf::RenderWindow*)'| |5|note: 'int mouse_xy(bool, sf::RenderWindow*)' previously defined here| ||In function 'float distance_to_point(float, float, float, float)':| |17|error: redefinition of 'float distance_to_point(float, float, float, float)'| |17|note: 'float distance_to_point(float, float, float, float)' previously defined here| ||=== Build failed: 2 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===| Добавлено через 1 минуту в условии теперь без амперсантов
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 23:13 | |
|
Там же всё написано. Redefenition - ты два раза одну и туже функцию описал, что ли?
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
||||||
| 01.11.2017, 23:21 [ТС] | ||||||
|
В смысле?
Добавлено через 1 минуту вот
функция возвращающая расстояние между точками - distance_to_point(x1, y1, x2, y2) Возвращает координату по x и y если первый аргумент равен 0 или 1 соответственно - mouse_xy(0, window)
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 23:22 | |
|
Вот это у тебя правильно сделано?
https://ru.wikipedia.org/wiki/Include_guard
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
||||||||||||||||
| 01.11.2017, 23:35 [ТС] | ||||||||||||||||
|
координату курсора мышки относительно окна window *
Добавлено через 2 минуты В файле Cickle2.cpp подключается <Function.cpp> и в Main.cpp Добавлено через 1 минуту Все подключения в Main.cpp
Благодарю за помощь я понял в чём была беда) Добавлено через 41 секунду Теперь меня интересует ещё кое что Добавлено через 3 минуты Вот у меня есть объект Circle & Circle2. В данный момент они сохраняются в массив Object *obj[1]; я хочу передать под вектор всё это дело и как я понимаю это выглядит так: vector<Object*> obj; И вот как например удалять созданные объекты которые "сохраняются" в этот вектор и как и него добавлять новые объекты Circle и Circle2?
0
|
||||||||||||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2017, 23:40 | |
|
Если там указатели, просто delete и присваиваешь другой. От массива не отличается.
0
|
|
| 01.11.2017, 23:40 | |
|
Помогаю со студенческими работами здесь
20
объекты и классы Классы, объекты Классы и объекты КЛАССЫ И ОБЪЕКТЫ Классы и объекты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|