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

в классе создаётся объект оператором new, как его удалить после использования в основной программе? delete в вызывающей функции не вариант! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ что не так?не выводит значения... http://www.cyberforum.ru/cpp-beginners/thread326366.html
#include <vcl.h> #include <math.h> #include <iostream.h> #include <stdlib.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused
C++ Вывод на монитор графики, не используя WinAPI Каким образом можно осуществлять работу с графикой и мультимедиа, не используя функции winapi? Не думаю, что это невозможно, ведь полно других ОС, кроме windows, использующих графику и визуализацию. Собственно всё сводится к обращению к портам монитора, к операциям ввода-вывода? Просто недавно меня поставили в тупик, сказав, что это невозможно, или это возможно, но только с использованием... http://www.cyberforum.ru/cpp-beginners/thread326360.html
виндовая форма C++
добрый вечер. прошу помощи в реализации. есть код. но мне его в форму сделать нужно.сам код: #include <iostream> //для консоли #include <string> #include <algorithm> #include <vector> #include <map> using namespace std; class Date {
C++ Предопределение типа данных С++
Доброго времени суток) Столкнулась с проблемой - нужно было код из книги,написанный на паскале, перекодить в с++.Даны две структуры,и в каждой элементы ссылаются друг на друга..в паскале,видимо,не играет роли,а вот в си.. struct item { int key; page* p; int count; };
C++ Очередь с приоритетом http://www.cyberforum.ru/cpp-beginners/thread326337.html
Всем привет . Собственно нужно организовать очередь с приоритетом. Задание: В офисе один принтер, на печать должны подоватся те документы которые выше по приоритету. Имеются такие дефайны. Код: #define FULL 10 //макс.размер очереди #define EMPTY 0 #define DIRECTOR 10 //приоритет директора
C++ Циклы - срочно Пишу в Borland C++. Ежемесячная стипендия студента составляет А р., а расходы на проживание превышают стипендию и составляют В р. в месяц. Рост цен ежемесячно увеличивает расходы на 3%. Составьте программу расчета необходимой суммы денег, которую единовременно надо попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию. подробнее

Показать сообщение отдельно
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
27.06.2011, 04:38
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
A g () {
 A a;
012015D7  lea         ecx,[ebp-14h] 
012015DA  call        A::A (120111Dh) 
012015DF  mov         dword ptr [ebp-4],1 
 return a;
012015E6  lea         eax,[ebp-14h] 
012015E9  push        eax  
012015EA  mov         ecx,dword ptr [ebp+8] 
012015ED  call        A::A (1201267h) 
012015F2  mov         ecx,dword ptr [ebp-0E0h] 
012015F8  or          ecx,1 
012015FB  mov         dword ptr [ebp-0E0h],ecx 
01201601  mov         byte ptr [ebp-4],0 
01201605  lea         ecx,[ebp-14h] 
01201608  call        A::~A (1201145h) 
0120160D  mov         eax,dword ptr [ebp+8] 
} 
...
0120163F  ret
012015DA вызывается конструктор автоматического объекта
012015ED вызывается конструктор копирования*
01201608 вызывается деструктор для автоматического объекта
теперь в стеке находится объект А и управление возращается в main

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main() {
    g ();
012017DE  lea         eax,[ebp-0C8h] 
012017E4  push        eax  
012017E5  call        g (12010FAh) 
012017EA  add         esp,4 
012017ED  lea         ecx,[ebp-0C8h] 
012017F3  call        A::~A (1201145h) 
    getchar();
012017F8  mov         esi,esp 
012017FA  call        dword ptr [__imp__getchar (120A3DCh)] 
01201800  cmp         esi,esp 
01201802  call        @ILT+415(__RTC_CheckEsp) (12011A4h) 
    return 0;
01201807  xor         eax,eax 
}
тут хитроумный мелкомягкий компилятор видимо заметил, что управление над тем объектом A утеряно и удалил его до выхода из области видимости, что впринципе логично. Видимо kravam про этот автоматический объект в main говорил?

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