PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : vector übers Netzwerk verschicken



tsluga
07-04-2007, 17:23
Hi !

Mal folgender Code



#include <iostream>
#include <typeinfo>
#include <vector>

class Fahrzeug
{
public:
Fahrzeug(const int raeder)
:_raeder(_raeder)
{
}
const int getRaeder(void)const {
return _raeder;
}
virtual bool isOfType(const Fahrzeug &object){
return ( typeid(*this) == typeid(object));
}
private:
int _raeder;
};

class BMW : public Fahrzeug
{
public:
BMW(const char* serie)
:Fahrzeug(4),
_serie(serie)
{}
const char *getSerie(void) {
return _serie;
}
private:
const char *_serie;
};

class Audi : public Fahrzeug
{
public:
Audi(const char* serie)
:Fahrzeug(4),
_serie(serie)
{}
const char* getSerie(void) {
return _serie;
}
private:
const char *_serie;
};

typedef std::vector<Fahrzeug> auto_liste;

auto_liste einkauf;

template <typename T1, typename T2, typename T3>
void append(T1 auto_1, T2 auto_2, T3 auto_3)
{
einkauf.push_back(auto_1);
einkauf.push_back(auto_2);
einkauf.push_back(auto_3);

std::cout<< ( auto_1.isOfType(auto_2) ? "gleiche Marke" : "unterschiedliche Marken" ) <<std::endl;
std::cout<< ( auto_2.isOfType(auto_3) ? "gleiche Marke" : "unterschiedliche Marken" ) <<std::endl;

// einkauf nun per Netzwerk verschicken und an einem anderen PC die Daten auslesen
}

int main(void)
{
Audi a("Audi 100");
Audi b("Audi A3");
BMW c("3er");

append(a,b,c);

return 0;
}


Ich will "einkauf" einkauf übers Netz an einen anderen PC verschicken und dort die einzelnen Fahrzeuge ( Audi , BMW usw ) wieder auslesen. Da ich aber im Vector nur "Fahrzeuge" speichere, gehen mit doch die anderen Informationen flüten oder nicht, also Sachen wie _serie ?

Das zweite Problem, wie kann ich überhaupt sowas wie einen Vector übers Netz verschicken ?

f0rtex
08-04-2007, 17:23
Das Zauberwort nach dem du suchst ist "Serialization"
http://www.parashift.com/c++-faq-lite/serialization.html


Gruss
f0rtex