Hallöchen!
Ich Arbeite an einem Projekt, in dem es geht aus verschiedensten Objekten einen Quelltext zu erzeugen.
Dafür hatte ich mir ein Grundobject angelegt mit der Methode CreateSource (virtuel) um später über eine Liste sicher zu stellen das auch für das richtige Object der Source generiert wird. Das Grundobject wird in vielen anderen Anwendungen auch verwendet.
Die sache mit der Liste wird über ein Object gehandelt, das Daten hält, die ich in jedem anderen Object auch benötige.
Da mir globale Daten nicht gefallen wollte ich diese unbedingt in das Object haben, die aus der Liste den Source aller anderen Objekte erzeugt. Das Grundobjekt hält auch Funktionen die ich sonst für jedes einzelne mögliche Objekt schreiben müsste?!
Weil ich nun aber nicht wusste wie ich da rann kommen soll habe ich der CreateSource als parameter void * Zeiger verpasst und caste das ganze wieder zum aufrufenden Object.
class Zebra_Object_Text : public eti_Object_Text
{
public:
bool HexString;
char HexChar;
short CI;
Zebra_Object_Text();
~Zebra_Object_Text();
virtual string CreateSource(void * position);
};
class Zebra_Object_Print
{
private:
…
public:
basic_string * LastFont;
int LastCI;
basic_string MakePosition(eti_Object_Ground & MyObject);
void AddObject(eti_Object_Ground &:wink:;
string MakeSource();
~Zebra_Object_Print();
Zebra_Object_Print();
};
string Zebra_Object_Print::MakeSource()
{
…
for(pI = AllObjects.begin();pI != AllObjects.end();pI++)
{
osCreateSource(this);
}
…
}
string Zebra_Object_Text::CreateSource( void * temp)
{
ostringstream os; // Stringstream erzeugen
Zebra_Object_Print * A = static_cast( temp);
if(CI!=-1 && CI!=A->LastCI)
{
osLastCI = CI; //
}
osMakePosition(*this);
if(*Schriftart!=*A->LastFont)
{
…
Dabei habe ich aber ein ungutes Gefühl. Kann mir jemand einen Tip geben wie man ein solches Bedürfnis verbessern könnte ?
Vielen Dank Michael