Pero si utilizas fichero de cabecera *.h y de codigo fuente *.cpp tienes que usar el operador de ámbito en el código fuente.
De todas formas probaré, vuelvo y escribo.
EDITO.
Si, si quito el operador de ámbito el compilador me dice que estoy declarando el método como no miembro.
Voy a clarificar la estructura del documento, está todo en un *.h porque si lo haces por separado no puedes usar templates:
#ifndef A_H
#define A_H 1
template <class T>
class A{
//atributos
private: ...
//delcaración de métodos
public:....
};
#endif
template <class T>
A::~A(){
//codigo descrito arriva
}
//resto de métodos
...
...
Nota: lo mas acojonante es que si dejo el destructor vacío (sin código), al intentar hacer delete a un objeto clase A, me salta el mismo error siempre.
El error es, haga lo que haga el destructor, termina, porque escribo
cout<<"1"<<endl;' al principio y 'cout<<2..' al final y salen por pantalla los 2, el error es que el programa "no responde" justo antes de hacer el 'return 0' del main.
Nota2: he probado a declarar un puntero normal y hacerle delete y en ese caso el destructor si funciona bien.
Entonces pregunto, como se define un destructor de matrices, y saber si tenemos una clase con punteros y con variables normales, el destructor debe destruir solo los punteros, o también las variables normales.