?? Struct in Class kopieren ??
-
Hi Leute,
ich hänge hier an einem Problemchen. Ich will eine vorhanden C_Struct in eine Klasse kopieren (nicht umwandeln!). D.h. die Struct muss weiterhin bestehen und die Klasse ist identisch aufgebaut. Bei jeder Änderung in der Struct soll dann auch die Klasse aktualisiert werden.
struct datenstruct { char CPU[50]; int CPUTemp[50]; int CPUSockel[50]; char CPUCodename[50]; . . . }daten_struct; class datenstruct { char CPU[50]; int CPUTemp[50]; int CPUSockel[50]; char CPUCodename[50]; . . . }daten_class;`
daten_class = daten_struct` geht leider nicht und jeden Wert einzeln kopieren ist zu aufwändig bei der Datenmenge.
Gruß
Mufasa
-
Merke Dir doch in der Klasse einfach einen Pointer auf die entsprechende Struct Instanz und biete "forward" Methoden an (getter / setter).
-
Welchen sinn soll das den haben?
Wenn's aber unbedingt sein soll:
#include <iostream> struct datenstruct { int testI; }; class datenclass : public datenstruct { }; int main( void ) { datenclass xy; xy.testI = 0; std::cout << "Hello world" << xy.testI << std::endl; getchar(); return 0; }mfg Martin
-
Danke für die Antworten...
@theta: Pointer hatte ich auch schon überlegt.... aber das kann ich hier in dem Fall nicht benutzen, weil die Klasse wieder woanders benutzt wird wo ich nicht mit diesen Pointern arbeiten kann. Genaueres schreib ich gleich.
@mgaeckler: Das ist mal ein guter Ansatz denk ich, danke Dir! Allerdings muss ich das ganze in beiden Richtungen machen...
um jetzt mal zum Sinn des ganzen zu kommen:
Aaaalso ich habe ein C_Struct (altes Programm, dass auch so weiter beibehalten werden muss, also muss ich damit arbeiten) und ich muss diese Daten die damit gespeichert werden für PHP zugänglich machen. Jetzt hab ich mir Jansson angeschaut um die Daten sozusagen für PHP zu "packen", encodieren. Das kann Jansson aber nur mit Objekten oder Arrays.
Only objects and arrays can be encoded, since they are the only valid “root” values of a JSON text.
Also war die Überlegung die Struktur in eine Klasse zu kopieren, davon ein Objekt zu ziehen und das dann zu enkodieren. Ich weiß ziemlich umständlich und evtl. auch fehleranfällig... was anderes fällt mir einfach nicht ein. Wenn Ihr Ideen oder Vorschläge habt.... gerne nur her damit

Auf jeden Fall muss das ganze dann so sein, dass wenn ich im PHP dann neue Werte speichere, diese dann auch wieder in der C_Struct übernommen werden damit das alte Programm diese neuen Werte einlesen und damit arbeiten kann....
also ein dauerndes hin und her wird das dann.....
So hoffe ich hab das jetzt einigermaßen verständlich ausgedrückt

-
structundclasssind bis auf die Default-Sichtbarkeit identisch. Die Instanz einerstructist auch ein Objekt.
-
ipsec schrieb:
[...]
Die Instanz einerstructist auch ein Objekt.Ahsoo... ok, cool! Das heißt ich brauch das gar nicht in eine Klasse zu kopieren? Ich könnte demnach die Instanz der Klasse mit Jansson packen??

Das wär toll! Nur....wie würdest Du das machen, dass sich die beiden immer gegenseitig aktualisieren?Gruß
Mufasa