komische fehlermeldung
-
hallo zusammen,
ich habe eine komische fehlermeldung, welch ich nicht verstehe. vielleicht kann mir ja jemand nen wink geben.
also, ich habe eine klasse serializable, welche ein serializierbares objekt definiert, eine subklasse SK von serializable und eine Archive, in das hineinserialisiert wird. SK sieht in etwa so aus:
typedef unsigned int AID; class SK : public Serializable { [...] AID id; int size; virtual int getSize() const{ return size; } virtual AID getID() const { return id; void set(Archive & archive) { archive(getID()); //<-- geht archive(getSize()); // <-- geht nicht } }Archive sieht in etwas so aus:
class Archive { [...] virtual void operator()(int8 &var) = 0; virtual void operator()(int16 &var) = 0; virtual void operator()(int32 &var) = 0; virtual void operator()(int64 &var) = 0; virtual void operator()(uint8 &var) = 0; virtual void operator()(uint16 &var) = 0; virtual void operator()(uint32 &var) = 0; virtual void operator()(uint64 &var) = 0; }Als Fehler bekomme ich folgendes angezeigt:
In member function ‘virtual void SK::set(ubeeme::Archive&)’: SK.cc:191: error: invalid conversion from ‘int’ to ‘Serializable*’ SK.cc:191: error: initializing argument 1 of ‘virtual void Archive::operator()(Serializable*)’Ich verstehe ehrlich gesagt nicht, wie er auf Serializable* kommt. Casten bringt auch nix. Jemand einen Tipp?
gruß und dank
uwe