Здравствуйте, fAX!
fAX>fAX>class A{
fAX>};
fAX>class B{
fAX> void foo(){
fAX> &A::~A;
fAX> }
fAX>};
fAX>int main (){
fAX>}
fAX>
fAX>Если вас не затруднит, проверьте, а?
Я не представляю как в линуксе это компильнулось

Деструктор изначально не может быть статичным

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

Это изначально неправильный подход при использовании объектно-ориентированной технологии. Для этих целей проще использовать стандартные операторы типа
int main(){
A *objA=new(A);
// ...
delete(objA);
}
А для удаления класса в целях его переопределения можно воспользоваться наследованием с перегрузкой методов.