PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : arrayübergabe in funktionen?


BodyLove
2005-12-18, 18:22:28
Hey,

wir müssen ein Stack programmieren, welches A und B einsortieren soll. Ich habe dazu die Funktionen Create, Push, Pop und empty erstellt. Nur schaffe ich es nicht ein Array1{AAB} in Create zurückzugeben. Muss man dazu zwingend Pointer verwenden?

Brauche dringend eine antwort.

Vielen Dank jungs.:)

Der besonderst Kluge
2005-12-18, 18:36:04
Der besonderst Kluge sagt,

dass man Adressen, d.h. Pointer, benutzen MUSS wenn man Anfänger ist. Der Fortgeschritte verwendet nen Template.

BodyLove
2005-12-18, 19:35:12
hast du zufällig einen Link, der mir verständlich erklärt, wie ich pointer verwende?

pajofego
2005-12-18, 20:11:51
Ich fand das hier immer sehr hilfreich (http://www.mathematik.uni-marburg.de/~cpp/)

Gruß

pajofego

Der besonderst Kluge
2005-12-18, 20:50:21
Ich fand das hier immer sehr hilfreich (http://www.mathematik.uni-marburg.de/~cpp/)

Gruß

pajofego

Der besonderst Kluge sagt,

dass du das auf keine Fall verwenden sollst. Das verwendet veraltete Sprachmittel und hält sich nicht an den Standard.

pajofego
2005-12-18, 20:58:46
Der besonderst Kluge sagt,

dass du das auf keine Fall verwenden sollst. Das verwendet veraltete Sprachmittel und hält sich nicht an den Standard.

Na dann mach mal einen besseren Vorschlag! Kritisieren kann man immer alles!

Gruß

pajofego

Marscel
2005-12-18, 22:03:37
hast du zufällig einen Link, der mir verständlich erklärt, wie ich pointer verwende?

Ist zwar englisch, aber mir hats mehr gebracht als mein deutsches Buch:

http://www.cplusplus.com/doc/tutorial/pointers.html

Coda
2005-12-18, 22:27:03
Na dann mach mal einen besseren Vorschlag! Kritisieren kann man immer alles! Er hat aber recht. Das Zeug kompliert ab VC++ 2003 gar nicht mehr.

BodyLove
2005-12-18, 22:30:23
Recht hat er bestimmt, nur wäre es für mich sehr hilfreich, wenn er Alternativvorschläge hätte.

Coda
2005-12-18, 22:33:25
Braucht er doch nicht als Troll :D

Gast
2005-12-18, 23:03:32
Na dann mach mal einen besseren Vorschlag! Kritisieren kann man immer alles!

Gruß

pajofego

Omg... Findest du es toll dass du hier einem Anfänger etwas an den Kopf wirfst was seit über 7 Jahren (!!!) veraltet ist?

Ich hab mal ein sehr schönes Tut gesehen, aber ich glaube es ist sehr schwer zu verstehen. Du kannst es ja mal versuchen. Wenn du aber nicht mitkommst besser aufhören. C++ ist wie Mathematik: Wenn man nicht weiß was Multiplizieren ist wird man nie Potenzieren verstehen. http://home.no.net/dubjai/win32cpptut/

Der besonderst Kluge
2005-12-18, 23:18:47
Ist zwar englisch, aber mir hats mehr gebracht als mein deutsches Buch:

http://www.cplusplus.com/doc/tutorial/pointers.html

Der besonderst Kluge hat vergessen,...

seinen tollen "besonderst klug"-Trolling-Style auf den vorherigen Post zu übernehmen. Noch eine Ergänzung zu dem oben gequoteten:

Habs nicht gelesen möchte keine Beurteilung abgeben, aber diese Funktion ist echt... einfach nur no comment:

void increase (void* data, int size)
{
switch (size)
{
case sizeof(char) : (*((char*)data))++; break;
case sizeof(int) : (*((int*)data))++; break;
}
}

Der Witz ist echt gut :]

BodyLove
2005-12-19, 13:12:19
Vielen Dank für den Link. Und trollen brauchst du hier auch nicht unbedingt. Es war ja nicht sonderlich schwer, ernst auf meine Frage einzugehen.;)

Coda
2005-12-19, 14:31:19
void increase (void* data, int size)
{
switch (size)
{
case sizeof(char) : (*((char*)data))++; break;
case sizeof(int) : (*((int*)data))++; break;
}
}WTF!

Trap
2005-12-19, 19:46:17
Genau, dafür kann man doch Templates nehmen, dann kann man sich das Switch sparen:
template<typename T> void increase(void* data)
{
++(*((T*)data));
}

Der besonderst Kluge
2005-12-19, 20:03:26
Der besonderst Kluge behauptet,...

dass Trap auch nen Anfänger ist! Abgesehen von der Sinnlosigkeit von dem ganzen (das gibts sicher schon in <functional>)würde man es natürlich so machen:

template<class Type>
void increase(Type& ref)
{
++ref;
}

:]

Trap
2005-12-19, 20:21:20
Dann ist es aber kein Beispiel für die Benutzung von Pointern mehr.

Der besonderst Kluge
2005-12-19, 21:14:20
template<class Type>
void increment(Type* p)
{
++(*p);
}

Coda
2005-12-19, 22:42:38
Das eigentlich WTF hier ist doch dass man den Datentypen anhand seiner Größe bestimmt!

Marscel
2005-12-19, 23:02:13
Wo wir gerade beim Thema sind, wie erfährt man den Datentyp eigentlich bei C++?

Bei PHP wäre es einfach gettype($var), aber wenn man z.B. bei C++ bei einem Template eine Extrawurscht für einen bestimmten Datentyp schneiden will, wie geht das?

Also sizeof() ist ja dämlich, da manche Datentypen ja dieselbe Größe haben...

Coda
2005-12-19, 23:17:53
typeof(). Das geht aber nur mit aktivierten RTTI und das schmälert die Performance. Eigentlich braucht man das auch nicht.

aber wenn man z.B. bei C++ bei einem Template eine Extrawurscht für einen bestimmten Datentyp schneiden will, wie geht das?Klar geht das.

template<class T> void foo(T blub) {
}

void foo(char blub) { // überladen für char
}