gsoap con sus herramientas y wsdl2h soapcpp2 me proporcionaron un archivo soapStub.h que contiene lo siguiente:referencia indefinida a VTABLE - miembro virtual, generada por las clases gsoap
class SOAP_CMAC ns2__SOAPKunden
{
public:
std::string *adresszusatz;
// ...
public:
virtual int soap_type() const { return 7; }
// ...
ns2__SOAPKunden() : adresszusatz(NULL), x(NULL) { } // left out all member init.
virtual ~ns2__SOAPKunden() { }
};
comienzo con una pequeña aplicación utilizando la clase para poblar objetos con datos de la base de datos informix.
Pero para compilar correctamente tengo que dejar fuera todas las cosas virtuales - me encontré con muchas publicaciones acerca de este error y el uso de los miembros virtuales en las subclases - de lo contrario me sale
main.o: In function `ns2__SOAPKunden::ns2__SOAPKunden()':
main.cpp:(.text._ZN15ns2__SOAPKundenC1Ev[ns2__SOAPKunden::ns2__SOAPKunden()]+0xf): undefined reference to `vtable for ns2__SOAPKunden'
main.o: In function `ns2__SOAPKunden::~ns2__SOAPKunden()':
main.cpp:(.text._ZN15ns2__SOAPKundenD1Ev[ns2__SOAPKunden::~ns2__SOAPKunden()]+0x13): undefined reference to `vtable for ns2__SOAPKunden'
collect2: ld returned 1 exit status
Admito después de años de secuencias de comandos sólo se es muy difícil para mí dar sentido al código C++ ... Quiero pedir consejo sobre qué probar a continuación. Mi clase no es una clase derivada, es por ejemplo lo que me hace pensar.
Si no está utilizando clases derivadas, ¿por qué la función es virtual? –