Union in QPtrList übergeben - ist das möglich?

toxrocks

Grünschnabel
Ist es möglich, einen QPtrList-Eintrag mit einer UNION im Konstruktor zu initialisieren? Es geht doch nur so, dass man einen neuen Eintrag in eine QPtrList einträgt, über den Konstruktor, oder?

Header
Code:
class IdData
{public:  	
IdData();  	
IdData(union DataFieldType, char, int, bool);  	
~IdData();    

protected:  	
union DataFieldType  	
{  		
char c_val;  		
short sh_val;  		
long l_val;  	
}dataBlock;

char byte_pos;  	
int reg_nr;  	
bool big_endian;

Konstruktor für Listeneintrag

Code:
IdData::IdData(union DataFieldType db, char bp, int reg, bool end)  
{  	
dataBlock=db;  	
byte_pos=bp;  	
reg_nr=reg;  	
big_endian=end;  }

Fehlermeldung:

error C2511: 'IdData::IdData' : overloaded member function 'void (union IdData
::DataFieldType,char,int,bool)' not found in 'IdData'
 
Hi!

Schreib mal die Bezeichner der Variablen, also db, bp, usw. mit in die Class-Definition mit rein, also

Code:
class IdData
{public:  	
IdData();  	
IdData(union DataFieldType db, char bp, int reg, bool end);	
~IdData();

MfG. Thomas
 
Ändert leider nichts, die Fehlermeldung bleibt. Wäre auch irgendwie komisch, schließlich muss man die Bezeichner ja eigentlich beim Definieren nicht mit angeben!

Noch ne Zusatzfrage. Wenn ich eine QPrtListe in einer anderen Klasse bearbeiten will, also zB in der einen Klasse habe ich sie geschaffen und erste Einträge vorgenommen und in der nächsten Klasse will ich jetzt einen Eintrag daraus finden und mit zusätzlichen Informatioen versehen (meine Datenstruktur zB mit den oben genannten Variablen ergänzen). Wie übergebe ich eine solche verkettete Liste so, dass ich sie dann in anderen Klassen verändert auch vorliegt.
 
toxrocks hat gesagt.:
Wenn ich eine QPrtListe in einer anderen Klasse bearbeiten will, also zB in der einen Klasse habe ich sie geschaffen und erste Einträge vorgenommen und in der nächsten Klasse will ich jetzt einen Eintrag daraus finden und mit zusätzlichen Informatioen versehen (meine Datenstruktur zB mit den oben genannten Variablen ergänzen). Wie übergebe ich eine solche verkettete Liste so, dass ich sie dann in anderen Klassen verändert auch vorliegt.

Habs jetzt mal so gemacht:

Aufruf in der Hauptklasse
Code:
canDataList=dataEntry.givePtrList(canDataList);

Methode in zu übergebener Klasse:
Code:
QPtrList<CanData> AddDataFieldFormImpl::givePtrList(QPtrList<CanData> liste)
{
	canDataList=liste;
	addDataField(); // Liste wird bearbeitet
	return canDataList;  // bearbeitete Liste zurückgeben
}

Also in der Klasse, in der die Liste erstellt wurde und in der schon Einträge vorgenommen wurden, rufe ich diese Funktion der neuen Klasse auf & arbeite dann da mit der Liste und gebe sie zurück. Müsste doch gehen oder wird jetzt immer ne neue canDataList erstellt?

Nee, oder? Die wird doch einfach überschrieben
 
Zurück