Все выпуски  

Профессиональное программирование


Информационный Канал Subscribe.Ru

В начало Клуб программистов Весельчак У Связаться со мной
a

Дорброго времени суток, уважаемые читатели.

Разбор базы данных книг подходит к концу, благодаря RXL все выложенные в феврале книги возвращаются в базу и надеюсь уже в ближейших выпусках я смогу порадовать вас анонсом правильных мест для скачивания этих книг.

 

По письму читателя исправлена статья о Виртуальных функциях часть 2 в которой все примеры были не читабельны по моей вине.

 

Ну и вышла третья часть, заключительная, серии статей по виртуальным функциям, обсуждение которых уже в самом начале было довольно интересным.

Само обсуждение здесь: http://forum.shelek.com/index.php/topic,5883.0.html

Теперь о блоге. Я уже говорил, но видимо неправильно сказал. Нужны люди, которые будут помогать заполнять новую ленту нам всем. Сегодня этим уже занимаются 2 человека, плюс на подходе еще несколько кандидатур, однако сам поиск новостей занимает очень много времени. Вспомните, что такие знаменитые сайты как nnm.ru и kpnemo.ru тоже делаются с новостей добываемых посетителяим. Огромная просьба ко всем вам. Е кто может и бывает на сайте, если вы видели или прочитали новость касающуюся программирования, просто заполните поля вот тут: http://club.shelek.com/addblog.php и новость попадет в ленту после ее проверки. Те кто на сайт не попадает но видит интересные новости от сатов в рассылках или по почте, высылайте на mailto:club@shelek.com и новость так же попадет в блог.

Блога чисто программистского, не касающегося взломов и всякой лабуды пока не существует. Я надеюсь что с вашей активной помощью мы его создадим, веренее сделаем удобным и обновляемым.

 

А теперь сама статья:

Виртуальные функции. Что это такое? Часть 3

Автор: Михалыч

Виртуальные деструкторы

Этой частью мы завершим начатое в первой и второй частях статьи рассмотрение использования виртуальных функций. Если вы читали серию статей «Классы. Копирование и присваивание», то помните, что там говорилось о том, как создаются объекты классов. Теперь поговорим о том, как они уничтожаются. Правда, следует оговориться сразу. Очень неплохо если вы уже знаете, что такое деструкторы в целом. Поскольку эта теоретическая часть сюда никак не вписывается. Если вы не знакомы с этим, совсем не помешает для начала почитать что-либо о конструкторах и деструкторах классов.

Когда нужны виртуальные деструкторы?
Давайте начнем изучение вопроса с рассмотрения простого (и ставшего уже классическим) примера.

Соорудим некий класс, который может запоминать строковое значение. И пусть он у нас будет базовым классом (правда не абстрактным, так как это не важно в данном случае), из него мы будем выводить другие.
Итак.


class Base
{
private:
char *sp1;
public:
Base(const char *S) { sp1=strdup(S); } //конструктор
~Base() { delete sp1; } //деструктор
};

Все просто. Конструктор класса выделяет память для строки путем обращения к библиотечной функции strdup и сохраняет адрес новой строки в указателе sp1. Деструктор класса освобождает эту память, когда объект класса Base выходит из области видимости.
Далее, из базового класса выведем новый класс. Вот такой:

class Derived: public Base
{
private:
char *sp2;
public:
Derived(const char *S1, const char *S2): Base(S1)
{ sp2=strdup(S2); } //это был конструктор
~Derived() { delete sp2; } //а это уже деструктор
};

Читать целиком: http://club.shelek.com/viewart.php?id=242

 

И еще. Если есть желающие с опытом и без поработать над созданием ежемесяцного офлайн журнала, но не на бумаге, а только в электронном виде, в формате pdf первый номер которого вышел недавно и готовится второй, обращаться на соответствующий форум сюда: http://forum.shelek.com/index.php/board,80.0.html

 

На этом все - с уважением, Гром.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.compu
Отписаться

В избранное