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

Вызов деструктора для класса в векторе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дано два одномерных массива размерностью n, сложить сумму этих массивов и найти наибольшее значение http://www.cyberforum.ru/cpp-beginners/thread1304875.html
Дано два одномерных массива размерностью n, сложить сумму этих массивов и найти наибольшее значение. Решите пожалуйста :)
C++ Вывести список всех файлов из указанной директории Помогите сделать , в задание нужно Вывести список всех файлов из указанной директории, имена которых не соответствуют шаблону имени 8.3. http://www.cyberforum.ru/cpp-beginners/thread1304869.html
Как правильно брать координаты курсора по событию WM_LBUTTONDOWN в x64? C++
Как правильно брать координаты курсора по событию WM_LBUTTONDOWN в x64? В x32 было x=LOWORD(Lparam); y=HIWORD(Lparam);. А в x64 как? По идее HIWORD в 64-хбитном типе - это в котором единица весит 281474976710656. Или нужно старшее слово младшего двойного слова?
Нужно записать две строчки в другом виде C++
Всем доброго времени суток, нужно записать две выделенные строчки в другом виде, наподобие этих строчек: int sumNeg(int *a, int size) { int tmpSum = 0; for (int i = 0; i < size; ++i) if (*(a + i) < 0)//Операция получения значения переменной, хранящейся по адресу, полученное в скобке tmpSum += *(a + i); return tmpSum; Код программы: #include <iostream>...
C++ Есть ли способ, зная ссылку на класс, использовать его значения без запроса по ссылке? http://www.cyberforum.ru/cpp-beginners/thread1304844.html
скажем есть 2 класса class ItemList { public: ItemList(); int item; int count; Func*func; }
C++ Функция, зеркально отображающая битовое представление числа Необходимо написать программу которая зеркально переворачивает битовое представление целого числа, помогите плз подробнее

Показать сообщение отдельно
CheburatorUA
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 24
19.11.2014, 12:29     Вызов деструктора для класса в векторе
Уважаемые знатоки, подскажите по-поводу деструктора класса, а то я совсем запутался вот в такой ситуации:
- есть класс - Ship;
- от него унаследовано два класса - BigShip, SmallShip;
- затем я создаю глобальный вектор указателей на базовый класс - vector<Ship*> Ships(10);
- по указателям выделяю память Ships[0] = new BigShip; Ships[1] = new SmallShip;... Ships[9] = new BigShip;

И вот нужно ли в конце программы вызывать вручную деструктор? И если да, то только для базового класса или и для унаследоваемых классов? Я сделал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
#include "ship.h"
using namespace std;
 
vector<Ship*> Ships(10);
 
void main()
{
    Ships[0] = new BigShip; 
    Ships[1] = new SmallShip;
    ...
    Ships[9] = new BigShip;
 
//окончание программы
 
     for(int i = 0;i<Ships.size();i++)  //вызов деструктора
           Ships[i]->~Ship();
 
     cin.get();
}
А как правильно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru