Templates

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/templates_36396/page_1 - zur Vollversion wechseln!


-wrax- schrieb am 02.06.2002 um 20:20

kann mir jemand von euch templates erklären...

wir muessen in ein beliebiges vererbungs-programm, tamplates einbauen (container-templ)

ich hab keine ahnung was der lehrer von uns will...


-wrax- schrieb am 02.06.2002 um 20:23

wäre nett wenn mir jemand an hand eines kleinen beispiel, container-tamplates demonstriert...


irreversible schrieb am 02.06.2002 um 21:40

welche sprache?? c++?


-wrax- schrieb am 03.06.2002 um 22:41

hab schon eine eigene loesung....
c++ (turboc-compiler)

ihr braucht nicht mehr zu antworten
-------------------------------------------------------

#include<iostream.h>
#include<conio.h>
#include<dos.h>

class oben
{
protected: int o;
};



class mitte1: public oben
{
protected: int m1;
};
class mitte2: public oben
{
protected: int m2;
};



class unten1: public mitte1
{
public:
void eingabe ()
{
cout<<"\n O: "; cin>>o;
cout<<"\n M1: "; cin>>m1;
cout<<"\n U1: "; cin>>u1;
}
void ausgabe ()
{
cout<<"\n Ausg. O: "<<o;
cout<<"\n\n Ausg. M1: "<<m1;
cout<<"\n\n Ausg. U1: "<<u1;
}

protected:
int u1;
};
class unten2: public mitte2
{
public:
void eingabe ()
{
cout<<"\n O: "; cin>>o;
cout<<"\n M2: "; cin>>m2;
cout<<"\n U2: "; cin>>u2;
}
void ausgabe ()
{
cout<<"\n Ausg. O: "<<o;
cout<<"\n\n Ausg. M2: "<<m2;
cout<<"\n\n Ausg. U2: "<<u2;
}

protected:
int u2;
};



template<class T>
class stack
{
public:
stack (int s=10): size(s), top(-1) {dat = new T[size];}
~stack() {delete [] dat;}

// push legt ein element auf das stack
void push(const T& t)
{
top=top+1;
dat[top]=t;
}
// pop entfaernt ein elemen von stack
void pop()
{
top=top-1;
}

void ausgabe()
{
dat[top].ausgabe();
}
void eingabe()
{
dat[top].eingabe();
}

// printInfo gibt informationen ueber das Stack aus
void printInfo () {cout<<" Element: "<<top+1<<" von "<<size;}

// ueberprueft ob stack leer ist
int isEmpty()
{
if(top==-1) return 1; //1=leer
else return 0; //0=nicht leer
}
// ueberprueft ob stack voll ist
int isFull()
{
if(top==size-1) return 1; //1=voll
else return 0; //0=nicht voll
}

protected:

int size; // groeáe des stack
int top; // gibt aktuelle position im Stack an
T* dat; // fuer template
};



void main ()
{
clrscr();
textmode(C4350);

int menue,hilf;

// Instanzen der 2 untersten Klassen
unten1 u1;
unten2 u2;

// Stack wird instanziert
stack<unten1> unten1Stack(5);
stack<unten2> unten2Stack;


do
{
clrscr();

cout<<"\n\n ----------------------------";
cout<<"\n unten1 -> "; unten1Stack.printInfo();
cout<<"\n\n unten2 -> "; unten2Stack.printInfo();
cout<<"\n ----------------------------";

cout<<"\n\n\n";
cout<<"\n --------------------------------";
cout<<"\n I [1] Datensatz unten1 Eingabe I";
cout<<"\n I [2] Datensatz unten2 Eingabe I";
cout<<"\n I I";
cout<<"\n I [3] Datensatz unten1 Ausgabe I";
cout<<"\n I [4] Datensatz unten2 Ausgabe I";
cout<<"\n I I";
cout<<"\n I [0] Ende I";
cout<<"\n --------------------------------";
cout<<"\n Eingabe: ";
cin>>menue;

switch (menue)
{
case 1: hilf=unten1Stack.isFull();

if(hilf!=1)
{
cout<<"\n\n\n\n";
u1.eingabe();
unten1Stack.push(u1); }
else
cout<<"\n\n Container-Klasse ist voll -> keine Eingabe moeglich!",
getch();
break;

case 2: hilf=unten2Stack.isFull();
if(hilf!=1)
{
cout<<"\n\n\n\n";
u2.eingabe();
unten2Stack.push(u2); }
else
cout<<"\n\n Container-Klasse ist voll -> keine Eingabe moeglich!",
getch();
break;

case 3: hilf=unten1Stack.isEmpty();

if(hilf!=1)
{
cout<<"\n\n\n\n";
unten1Stack.ausgabe(); getch();
unten1Stack.pop();
}
else
cout<<"\n\n Container-Klasse ist leer -> keine Ausgabe moeglich!",
getch();
break;

case 4: hilf=unten2Stack.isEmpty();
if(hilf!=1)
{
cout<<"\n\n\n\n";
unten2Stack.ausgabe(); getch();
unten2Stack.pop();
}
else
cout<<"\n\n Container-Klasse ist leer -> keine Ausgabe moeglich!",
getch();
break;

case 0: break;

default: cout<<"\n Ungueltige Eingabe..."; delay(300);
break;
}

}
while(menue!=0);
}


FMFlash schrieb am 03.06.2002 um 23:56

omg es leben die sinnlosen beispiele ;)
falls du noch was zum nachlesen brauchst und es noch nicht selbst gefunden hast, das imo beste c++ grundlagen-tutorial (auch immer gut zum nachschlagen wenn man mal eine kleinigkeit vergessen sollte) gibts unter http://www.cplusplus.com/doc/tutorial/


Vir@s schrieb am 04.06.2002 um 06:54

Ich würde gern deRelict zietieren:

ajo, FYI: nochmal so an schwall sourcecode posten und du bist weg aus diesem forum

:)


FMFlash schrieb am 04.06.2002 um 18:58

geh das bissl text


Vir@s schrieb am 04.06.2002 um 19:33

:D :D :D




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025