La clase QRCodeSignature no permite declaraciones de registro
Frecuentes
Visto 24 veces
0
Tengo una clase de firma QRCode que deseo poner declaraciones de registro y estoy comenzando con la parte del constructor como:
QRCodeSignature::QRCodeSignature(std::vector<WacomType::PEN>* theSigpoints, int theInterval, int theVersion) : sigpoints(theSigpoints), interval(theInterval), version(theVersion) {
Logging::log(QRCodeSignature::logger, Logging::Entry, QRCodeSignature::CLASSNAME, "QRCodeSignature");
Tengo en QRCodeSignature.cpp lo siguiente incluye
#include "QRCodeSignature.h"
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
En QRCodeSignature.hi tengo la siguiente clase como QRCodeSignature
a constructor
a virtual destructor
private:
static const std::string CLASSNAME;
static Logging::Logger* logger;
En QRCodeSignature.cpp tengo
const std::string CLASSNAME = "QRCodeSignature";
Logging::logger* QRCodeSignature::logger = NULL;
El error cuando construyo este proyecto[Versión]
build/Release/MinGW_1-Windows/QRCodeSignature.o: In function `QRCodeSignature':
C:\repos\impression\trunk\ProsenseSign/QRCodeSignature.cpp:13: undefined reference to `QRCodeSignature::CLASSNAME'
collect2: ld returned 1 exit status
make[2]: *** [dist/Release/MinGW_1-Windows/impression.api] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
1 Respuestas
0
Deberías usar
const std::string QRCodeSignature::CLASSNAME = "QRCodeSignature";
en lugar de
const std::string CLASSNAME = "QRCodeSignature";
ya que el segundo no es la inicialización de static-member
de clase.
Respondido 24 ago 12, 06:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c++ compiler-errors linker-errors qr-code or haz tu propia pregunta.