Вы получите какое-то значение, но это будет какое-то случайное значение, которое, поскольку объект, который содержит его, было уничтожено.
в идеале я бы удалил и установил бы его на нуль
, поэтому в вашемНапример,
c=null;
Объектно-ориентированный C ++ имеет те же ограничения на время жизни объекта, что и каждый язык на основе ОО
Жизненный цикл объекта начинается, когда он создается, и заканчивается, когда он уничтожается.В определении класса C ++ функция-член с тем же именем в качестве класса является конструктором.Это функция, которая вызывается автоматически при создании экземпляра класса.Конструкторы обычно используются для инициализации элементов данных объекта в их состояние по умолчанию, но также могут использоваться для распределения ресурсов (память, файлы и т. Д.).Для любого класса может быть объявлено несколько функций конструктора, каждая из которых принимает разные типы аргументов, обеспечивая различные способы инициализации экземпляров.Конструктор по умолчанию для класса - это конструктор этого класса, который можно вызывать без каких-либо аргументов.Конструктор по умолчанию для класса будет сгенерирован автоматически, если ни один конструктор не был явно объявлен для этого класса.Конструктор копирования для класса - это конструктор, который можно вызвать для копирования объекта этого класса (он имеет единственный аргумент соответствующего типа).Конструктор копирования вызывается, когда, например, объект аргумента передается по значению в функцию или когда объект инициализируется значением другого объекта.Copyconstructor для класса будет сгенерирован автоматически, если для этого класса не было явно объявлено ни одного конструктора копирования.Функция-член с тем же именем в качестве класса с ведущей тильдой (~) является деструктором. Это функция, которая вызывается автоматически при удалении объекта. Деструктор обычно используется для освобождения любой памяти, выделенной для объекта (и может такжеосвободить любые другие ресурсы, полученные во время построения). Конструкторы и деструкторы не требуются в определениях классов.
Существует несколько способов создания объектов в программе на C ++.Один из них - определить переменную как принадлежащую к определенному классу, либо как глобальную переменную, либо как локальную переменную внутри блока.Когда объявление встречается во время выполнения программы, выделяется место для объекта и вызывается конструктор, если таковой имеется, для объекта.Точно так же, когда переменная объекта выходит из области видимости, ее деструктор вызывается автоматически.Другой способ создания объекта - объявить переменную, которая является указателем на класс объекта, и вызвать новый оператор C ++, который выделит пространство для объекта и вызовет конструктор, если таковой имеется, для объекта. В этом случае переменная-указатель должнабыть явно освобождены с оператором удаления.Конструктор для объекта выполняется при вызове new, а деструктор выполняется при вызове delete. Объект также может быть создан с помощью явного использования конструктора в выражении.
Когда класс является производным от другого класса, он наследует конструктор и деструктор своего родительского класса.Родительские конструкторы вызываются до производных конструкторов.Деструкторы вызываются в обратном направлении, начиная от производного класса вверх по его родительской цепочке.
Подробнее здесь http://www.objs.com/x3h7/cplus.htm