DBConnection: //: C09:UseDatab
Автор admin
Понедельник, 15 июня 2009 11:32
DBConnection: //: C09:UseDatabase2.cpp // Тестирование подсчета ссылок #include #include “DBConnection.h” class DBClient { DBConnection* db: public: DBClient(DBConnection* dbCon) { db = dbCon; db->attach(): } -DBClientО { db->detach(): } // Другие запросы к базе данных с использованием db… }: int mainO { DBConnection* db = DBConnection::create(“MyDatabase”): assert(db->refCount() == 1): DBClient cl(db): assert(db->refCountО == 2): DBClient c2(db): assert(db->refCount() == 3): // Используем базу данных, а затем освобождаем ресурс. // захваченный при вызове create. db->detach(): 450 Глава 9 • Множественное наследование assert(db->refCount() == 2); } ///:- Функция DBConnection::create() вызывает attach(), поэтому после завершения работы с объектом необходимо освободить захваченное подключение явным вызовом detach(). Обратите внимание: класс DBClient также управляет соединением при помощи RAIL При завершении программы деструкторы двух объектов DBClient уменьшают счетчик ссылок (вызовом функции detachQ, унаследованной DBConnection от Countable). Подключение к базе данных закрывается (из-за вирту
Комментарии закрыты.
Последние комментарии