Форум программистов, компьютерный форум 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 месяцев), используя только эти деньги и стипендию. подробнее

Показать сообщение отдельно
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
27.06.2011, 01:57     в классе создаётся объект оператором new, как его удалить после использования в основной программе? delete в вызывающей функции не вариант!
Цитата Сообщение от kravam Посмотреть сообщение
Включаем оптимизацию, КК не вызывается. Но деструктор вызывается. Почему? Из зоны видимости он не вышел- из зоны видимости не g, но конечно же main, ибо как я уже дал понять, он создался сразу в main и следовательно он автоматичен именно для main.
В функции main нет никакого объекта, который бы существовал до конца работы программы.. Конструктор копирования в данном случае не вызывается потому, что копировать некуда. Временный же объект, который является результатом вызова этой функции (и в который проискодит копирование при отключённой оптимизации копирования) имеет областью видимости вовсе не main, а лишь ту точку, где его можно было бы использовать при желании, то есть в месте вызова функции. Вот там он сразу же и удаляется. Нет никакой путаницы. Отключать оптимизацию неразумно. Иначе лучше вообще забыть и про C++ и даже про C и программировать сразу на ассемблере.

Добавлено через 1 минуту
Цитата Сообщение от kravam Посмотреть сообщение
Да, так вот. Функция main не закончилась, а объект, определённый в ней умер.
Этот объект был определён не в функции main. И оттого, что он умер, никому хуже не стало. И не могло стать.
 
Текущее время: 11:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru