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

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

Войти
Регистрация
Восстановить пароль
 
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
#1

Создание массива классов(обектов класса) - C++

23.06.2013, 23:52. Просмотров 349. Ответов 9
Метки нет (Все метки)

Здрасти, для этого я использую vector
C++
1
std::vector<Sprite> sprites;
После чего пытаюсь добавить объект в этот вектор
C++
1
2
Sprite sp = Sprite(x, y,width,height,texID);
sprites.push_back(sp);
Но у меня ничего не получается, как быть и что делать? Помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2013, 23:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание массива классов(обектов класса) (C++):

Передача массива классов в метод класса - C++
1. этап. Разработать библиотеку функций(h-файл) для выполнения: – чтения базы данных из файла; //read() – печати на экран; //print()...

Создание массива класса - C++
Пишу курсовую, задание получил следующее: &quot;Разработать приложение на С++, позволяющее, собирать, накапливать сведения о студентах и...

Создание класса по обработке массива. - C++
Помогите, пожалуйста решить!!! Задание: Напишите программу по обработке массива, как объекта созданного Вами класса &quot;Массив&quot; и...

Создание массива объектов класса - C++
Доброго времени суток! Хотела бы разобраться с вашей помощью в чем-таки состоит моя ошибка. //Создаю класс class TaleGreen { ...

Создание массива элементов класса - C++
Добрый день. Возможно ли сделать следующий финт: class Device { byte mGroup; public: Device(byte gr=0) { ...

Создание Массива Объектов класса - C++
Здравствуйте, такая вот проблемка возникла: нужно создать массив B объектов класса TGoods. И далее по определенному значению year...

9
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
24.06.2013, 00:44 #2
В каком смысле не получается?
Можно, кстати, делать так:
C++
1
sprites.push_back(Sprite(x, y,width,height,texID));
1
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 01:16  [ТС] #3
@Olivеr, Я в конце концов разобрался, нужно делать так:
C++
1
2
Sprite sp = Sprite(x, y,width,height,texID);
    sprites.push_back(sp);
Но все равно, спасибо, ваш метод гораздо удобнее +)
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
24.06.2013, 01:19 #4
@Демик, в вашем случае в вектор поместится копия sp, то есть будет существовать два таких экземпляра.
0
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 01:22  [ТС] #5
@Olivеr, так и думал, что мой способ неверен, сразу как написал была мысль, где же мне это аукнеться = )
а если бы я написал что-то типа
C++
1
2
3
Sprite sp = Sprite(x, y,width,height,texID);
    sprites.push_back(sp);
delete sp;
?
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
24.06.2013, 01:31 #6
@Демик, operator delete можно применять только к указателям, которые указывают на данные размещенные в динамически распределяемой памяти (куче).
Такой код совершенно некорректен.

Лучше скажите, чего конкретно надо добиться, а я подскажу как это сделать.

Добавлено через 1 минуту
Цитата Сообщение от Демик Посмотреть сообщение
так и думал, что мой способ неверен
а вообще, там ошибки нету, я просто говорю, что в векторе будет копия, а не конкретно тот же объект
0
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 01:36  [ТС] #7
@Olivеr, я в принципе что хотел уже получил.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7490 / 4605 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
24.06.2013, 03:26 #8
Можно, кстати, делать так:
C++
1
sprites.emplace_back(x, y,width,height,texID);
Добавлено через 13 секунд
P.S. C++11
1
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 03:46  [ТС] #9
@MrGluck, какой метод будет более быстрым?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7490 / 4605 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
24.06.2013, 03:50 #10
@Демик, что значит быстрым? Мне вот быстрее набрать с emplace. А по своей сути они идентичны, просто второй использует initializer_list
0
24.06.2013, 03:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2013, 03:50
Привет! Вот еще темы с ответами:

Создание массива объектов класса - C++
Создание массива объектов класса. E2451 Undefined symbol 'myZKH' По-разному уже пробовал-безуспешно. /* Создание...

Создание массива объектов класса - C++
Здравствуйте Подскажите пожалуйста как правилььно создать массив объектов класса, что бы не создавать промежуточный объект класса &quot;Rtd&quot;: ...

Создание массива класса, с установленным конструктором - C++
Не могу разобраться, создаю ссылку на класс в h файле, далее в cpp инициализирую, *.h FILE* file. *.cpp, вот тут мне нужен...

Создание класса по обработке данных массива - C++
Добрый день!!!Помогите в решении задачи на массивы. А то в них вообще бум-бум.. Нужно написать программу по обработке массива, как...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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