Чтобы быть простым, виртуальный деструктор должен уничтожить ресурсы в правильном порядке, когда вы удаляете указатель базового класса, указывающий на объект производного класса.
#include<iostream>
using namespace std;
class B{
public:
B(){
cout<<"B()\n";
}
virtual ~B(){
cout<<"~B()\n";
}
};
class D: public B{
public:
D(){
cout<<"D()\n";
}
~D(){
cout<<"~D()\n";
}
};
int main(){
B *b = new D();
delete b;
return 0;
}
OUTPUT:
B()
D()
~D()
~B()
==============
If you don't give ~B() as virtual. then output would be
B()
D()
~B()
where destruction of ~D() is not done which leads to leak
Для подключения к базе данных Oracle, локальной или удаленной, вам нужна какая-то форма клиента.
У вас есть два варианта:
". Не можем ли мы подключиться к базе данных оракула только с драйверами или поставщиками, присутствующими в наша ОС (Windows XP) .. "
blockquote>Подумайте об этом так: драйверы ODBC не подключаются к базе данных , они подключаются к SQL Сеть. Затем SQL Net подключается к базе данных.
«в чем разница между драйверами, поставщиками с клиентом».
blockquote>Драйверы, предоставляемые Oracle, лучше настроены для Oracle, чем те, которые предоставляет MS, но в этом контексте они одинаковы: оба требуют наличия клиента Oracle для работы.