error LNK2019: símbolo externo no resuelto "public: __thiscall Signal

Cuando llamo a la función main() obtengo un error:

Error 2 error LNK2019: símbolo externo no resuelto "public: __thiscall Signal :: Signal (void)" (?? 0? $ Signal @ H @@ QAE @ XZ) al que se hace referencia en la función "public: __thiscall Img :: Img (int, int ) "(?? 0? $ Img @ H @@ QAE @ HH @ Z) c: \ Users \ Maja \ documents \ visual studio 2012 \ Proyectos \ Proyecto6 \ Proyecto6 \ Img.obj Proyecto

¿Alguien puede decirme cómo configurar Linker para que no llame al constructor predeterminado y llame a uno que yo quiera?

template  class Signal {

protected: int N;                              //width of array
       int M;
private:   double deltaT;                      //sampling period
       double t0;                          //initial time
           int flag;                           //indicator
public:  
       T* sig;                             //array of type T
       T** sig2D;
       Signal(void);                   //constructor
       Signal (int);                       //constructor
       Signal (int,int);
       Signal (int,double);                //constructor      
       Signal(int,int,double);
       Signal (int,double,double);         //constructor
       Signal(int,int,double,double);
};


template  class Img:public Signal
{
public:
    Img(void);
    ~Img(void);
    Img(int,int);
};


template  Img::Img(int a,int b){
    Signal(a,b); //or Signal::Signal(a,b);
}

int main() {

    Img *a=new Img(2,3);
}
0

1 Respuestas

Necesita inicializar clases base en la lista de inicializadores:

template  Img::Img(int a,int b) :
    Signal(a,b) //here
{
   //not here
}

Su versión intenta construir de forma predeterminada el objeto base, ya que no se menciona en la lista de inicializadores, luego crea y destruye un objeto local temporal.

0
agregado
Muchas gracias!
agregado el autor user3094708, fuente
Me doy cuenta de que no puedo acceder incluso si es público, pero antes de la declaración en la clase de derivación, debería poner usando Signal :: getHeight y funciona.
agregado el autor user3094708, fuente
@ user3094708: Si tiene otra pregunta, debe hacer otra pregunta: es difícil leer fragmentos de código en los comentarios o dar detalles suficientes para describir el problema con claridad. Si getHeight es público, entonces debe ser accesible.
agregado el autor Mike Seymour, fuente
@ user3094708: Si tiene otra pregunta, debe hacer otra pregunta, como una pregunta, no un comentario a esta respuesta.
agregado el autor Mike Seymour, fuente