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

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

Войти
Регистрация
Восстановить пароль
 
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
#1

Как выглядит конструктор и деструктор для vector ? - C++

21.11.2013, 21:55. Просмотров 769. Ответов 11
Метки нет (Все метки)

Есть класс:
C++
1
2
3
4
5
6
class table_m
{
public:
    vector <Item> table;
    table_m();
};
Как будет выглядеть для него конструктор и деструктор? Конструктор и деструктор для vector нужно вызывать внутри конструктора table_m() ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 21:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как выглядит конструктор и деструктор для vector ? (C++):

конструктор и деструктор для cout - C++
Здарова! нужно решить задачу: есть код: int main() { cout &lt;&lt;&quot;Hellow world&quot;&lt;&lt;endl; } нужно без модифицирования...

Деструктор для абстрактного класса, использующего static vector - C++
Доброго времени суток. Возникла проблема с написание деструктора абстрактного класса, использующего static vector для хранения ссылок на...

Дописать конструктор и деструктор для класса - C++
Помогите пожалуйста написать конструктор копии и деструктор, а также вызвать их, чтобы деструктор выводил на экран &quot;работает&quot; #include...

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

Как сделать конструктор и деструктор с параметрами? - C++
как сделать конструктор и деструктор с параметрами?:-| #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class...

Конструктор для vector - C++
привет всем ! к примеру класс, в котором под private находится объект например vector&lt;int&gt; R, как написать конструктор для таких объектов...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
21.11.2013, 22:01 #2
C++
1
2
3
4
5
6
7
8
9
10
11
//default (1)   
explicit vector (const allocator_type& alloc = allocator_type());
//fill (2)  
explicit vector (size_type n, const value_type& val = value_type(),
                 const allocator_type& alloc = allocator_type());
//range (3) 
template <class InputIterator>
         vector (InputIterator first, InputIterator last,
                 const allocator_type& alloc = allocator_type());
//copy (4)  
vector (const vector& x);
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
21.11.2013, 22:14  [ТС] #3
Так не понятно, вы можете проиллюстрировать работу конструктора и деструктора для этого класса:
C++
1
2
3
4
5
6
7
class table_m
{
public:
    vector <Item> table;
    table_m();
    ~table_m();
};
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
21.11.2013, 22:15 #4
C++
1
2
table_m::table_m() {}
~table_m::table_m() {}
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
21.11.2013, 22:21  [ТС] #5
C++
1
2
table_m::table_m() {}
~table_m::table_m() {}
Разве таим образом будет инициализироваться и удалятся контейнер?
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
21.11.2013, 22:22 #6
Цитата Сообщение от Sammm Посмотреть сообщение
Как выглядит конструктор и деструктор для vector ?
От задачи зависит
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
22.11.2013, 00:40  [ТС] #7
Класс таблица:
C++
1
2
3
4
5
6
7
class table_m
{
public:
    vector <Item> table;
    table_m();
    ~table_m();
};
Класс элемент:
C++
1
2
3
4
5
6
class Item
{
public:
    int number;
    char * info;
};
Что еще необходимо знать для реализации конструктора и деструктора ?

Добавлено через 2 часа 12 минут
Как удалить все содержимое контейнера?
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
22.11.2013, 00:45 #8
Цитата Сообщение от Sammm Посмотреть сообщение
Как удалить все содержимое контейнера?
C++
1
vector <Item> ().swap(table);
c++11
std::vector::shrink_to_fit
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,220
Записей в блоге: 3
Завершенные тесты: 1
22.11.2013, 02:07 #9
Цитата Сообщение от Sammm Посмотреть сообщение
Как удалить все содержимое контейнера?
C++
1
vec.clear ( ) ;
http://www.cplusplus.com/reference/vector/vector/clear/
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
22.11.2013, 12:54 #10
Наверное имелось в виду что-то типа того:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class table_m
{
private:
    vector <Item> table;
public:
    table_m()
      {
      };
    table_m( unsigned int _size )
      {
      table.reserve( _size );
      };
    ~table_m() 
      {
      table.clear();  // Удалили элементы
      vector<Item>().swap(table); // Очистили память
      };
};
Цитата Сообщение от Sammm Посмотреть сообщение
Конструктор и деструктор для vector нужно вызывать внутри конструктора table_m() ?
Нет.
gray_fox
What a waste!
1506 / 1209 / 68
Регистрация: 21.04.2012
Сообщений: 2,544
Завершенные тесты: 3
22.11.2013, 13:02 #11
Цитата Сообщение от Sammm Посмотреть сообщение
Конструктор и деструктор для vector нужно вызывать внутри конструктора table_m() ?
Только конструктор, и не в теле конструктора table_m(), а в списке инициализации этого конструктора, иначе для table будет вызван конструктор по умолчанию. Вызов деструктора указывать нигде не надо - для этого они и нужны.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.11.2013, 13:49 #12
Цитата Сообщение от gray_fox Посмотреть сообщение
Вызов деструктора указывать нигде не надо - для этого они и нужны.
Возможно нюансы: placement new()
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 13:49
Привет! Вот еще темы с ответами:

Как работает деструктор и конструктор при наследовании? - C++
Возникла проблемка, не пойму, как работает деструктор и конструктор в моей программе. Я не вызываю явно конструктор, как в этом случае...

Нужно ли прописывать конструктор и деструктор для чисто виртуального абстрактного класса - C++
Всем привет! Порылся в интернете, но не смог найти конкретного ответа на свой вопрос. Возможно я просто не смог грамотно сформулировать...

Конструктор инициализации, конструктор копирования, деструктор - C++
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор инициализации, конструктор копирования, деструктор....

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор - C++
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать конструктор по умолчанию, копирования и...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.11.2013, 13:49
Ответ Создать тему
Опции темы

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