Форум программистов, компьютерный форум CyberForum.ru

динамически создать/удалить объекты класса (правильно сделал?) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
boolean34
0 / 0 / 0
Регистрация: 26.08.2011
Сообщений: 20
26.04.2012, 14:51     динамически создать/удалить объекты класса (правильно сделал?) #1
создал класс:
myclass {
}

завел вектор, в котором будут храниться указатели на объекты данного класса:
vector <myclass*> ob;

создаю новые объекты:
ob.push_back(new myclass) ;

выборочно удаляю объект (допустим третий):
delete ob[2]; // удалили память, которая была отведена под объект класса
ob.erase(ob.begin()+2); // удалили указатель из вектора

все правильно с удалением ??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 14:51     динамически создать/удалить объекты класса (правильно сделал?)
Посмотрите здесь:

Какие объекты Вы создавали бы динамически? C++
C++ Правильно ли сделал
C++ правильно ли я сделал задание?
Правильно ли я сделал пример C++
C++ Объекты. Как правильно инициализировать и удалить перемнные
Динамически создать и удалить vector C++
C++ Архитектура программы. Правильно ли сделал?
C++ Классы и объекты в С++, компонента класса и экземпляр класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
extenup
53 / 53 / 3
Регистрация: 12.11.2011
Сообщений: 109
26.04.2012, 15:18     динамически создать/удалить объекты класса (правильно сделал?) #2
Да, всё правильно
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
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
class myclass 
{
public:
    int num;
    myclass(int num)
    {
        this->num = num;
    }
};
 
int main()
{
    vector<myclass*> ob;
    for(int i = 0; i < 5; i++)
        ob.push_back(new myclass(i));
 
    cout << "before delete: ";
    for(int i = 0; i < ob.size(); i++) cout << ob[i]->num << " ";
 
    delete ob[2];
    ob.erase(ob.begin() + 2);
 
    cout << endl << "after  delete: ";
    for(int i = 0; i < ob.size(); i++) cout << ob[i]->num << " ";
 
    cout << endl << endl;
    system("pause");
    return 0;
}
boolean34
0 / 0 / 0
Регистрация: 26.08.2011
Сообщений: 20
27.04.2012, 06:01  [ТС]     динамически создать/удалить объекты класса (правильно сделал?) #3
ок спасибо!
Yandex
Объявления
27.04.2012, 06:01     динамически создать/удалить объекты класса (правильно сделал?)
Ответ Создать тему
Опции темы

Текущее время: 02:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru