PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [vTut, C++]C++ - Lessons



Kolabi
23.07.2009, 20:00
Funktionen

Ich hab mal ein vTut über Funktionen in C++ gemacht. Ich habe allerdings nicht alles über Funktionen besprochen ( u.a. virtuelle,friend,transzendente...)

In diesem vTut geht es um :


C++ Programm und seine Bestandteile
Erstellen eigener Funktionen
Inline Funktionen
Überladung
Rekursive Funktionen


Länge : ~ 20 Min
Größe :


(entpackt) : ~ 85 MB
(gepackt) : ~ 55 MB

Format : .wmv

Video Download [RS] : http://rapidshare.com/files/259212190/C___-_Funktionen.rar
Präsentationsdatei (Open Office - Impress ) Download [Uploaded.to] : http://uploaded.to/file/k6qvix



---------------------------------------------------------------------------



Arrays


In diesem vTut geht es um :


Was sind Arrays?
Definition u. Initialisierung v. Arrays
Mehrdimensionale Arrays
Übungen


Länge : ~ 12 Min
Größe :


(entpackt) : ~ 154 MB
(gepackt) : ~ 108 MB

Format : .wmv

Video Download [RS] : http://rapidshare.com/files/259831064/C___-_Arrays.rar
Präsentationsdatei (Open Office - Impress ) Download [Uploaded.to] : http://uploaded.to/file/vepkjs (http://uploaded.to/file/k6qvix)



---------------------------------------------------------------------------



Zeiger


In diesem vTut geht es um :


Was sind Zeiger und wie funktionieren sie?
Dereferenzierung
Heap und Stack
Memory Leaks


Länge : ~ 16 Min
Größe :


(entpackt) : ~ 56 MB
(gepackt) : ~ 42 MB

Format : .wmv

Video Download [RS] : http://rapidshare.com/files/260303144/C___-_Zeiger.rar
Präsentationsdatei (Open Office - Impress ) Download [Uploaded.to] : http://uploaded.to/file/bcz66v

---------------------------------------------------------------------------

Youtube Upload von Yakuza112 (http://free-hack.com/member.php?u=43453):


http://www.youtube.com/watch?v=tAGnJcni8y8
http://www.youtube.com/watch?v=l7C3vq61DTU
http://www.youtube.com/watch?v=FJBqaDa13AY

Sirect
23.07.2009, 21:04
Scheiße... Das ist gut :D
Das beste Tutorial das ich seit langem gesehen habe, hast alles gut erklärt, es ist gesprochen, und die Qualität ist in Ordnung.
Was will man mehr :)

Edit:

Du erklärst sogar den Wortursprung anhand von Lateinischen Begriffen xD
Wäre cool mehr von dir zu sehen!

blackberry
23.07.2009, 21:19
Erstmal was ich schön fand:
- die Powerpoint Präsentation mitten drin (:
- du hast gesprochen
- du hast Beispiele gezeigt (die auch nicht uneinfallslos waren ;))
- du hast Übungsaufgaben gestellt (nette Idee)

Was ich zu bemängeln habe:
- die Prototypen die du benutzt hast waren an diesen Stellen gar nicht notwenig - Prototypen werden genutzt, weil man in C++ Funktionen nicht implizit deklarieren darf (in C übrigens seit den neueren Standards auch nicht mehr) - da du die Funktionen aber vor ihren Aufrufen deklariert hast (sie standen alle über der main-Funktion) war dies unnötig
- 06:44; weder der Speicherbereich in dem die Parameter gespeichert sind, noch der Speicherbereich für lokale Variablen wird freigegeben - Variablen und Parameter werden in der Regel auf dem Stapelspeicher (Stack) abgelegt und verbleiben dort auch, bis sie überschrieben werden. Lediglich der Gültigkeitsbereich für solche lokale Variablen erlischt außerhalb der Funktion
- die Programmgeschwindigkeit kann durch inline-Funktionen erhöht werden - das stimmt, deine Begründung erscheint mir aber etwas mekrwürdig: "das heißt das Programm mus die Funktion nicht suchen" - die Funktion wird nicht gesucht (auch nicht im Sourcecode, wie du bei 06:06 behauptet hast); das Programm weiß genau wo sich diese Befindet - lediglich der Ausruf und das erstellen eines Stack-Frames führen zu einem sogenannten Function Overhead
- Wann darf man Funktionen überladen? (wurde nicht konkret beantwortet): wenn sich die Funktionen in der Anzahl ihrer Parameter und/oder deren Datentypen unterscheiden
- bei ca. 16:00 hattest du wohl ein Schnitt-Problem - der Film wiederholt sich
- nach deiner Definition von der Fakultät in 16:53 (!n = (n-1) * n) wäre z.B. mit n = 5 die Fakultät von 5: !5 = 4 * 5
- wieso definierst du bei deinem Fakultätsbeispiel die Funktionen mit Rückgabetyp long? Bei 32bit Systemen sind integer (int) und longs (long bzw. wenn man so will: long int) äquivalent - die Differenzierung ist somit unnötig und verwirrt nur.

------------------------------------------

Alles in allem ist das ein sehr gelungenes Tutorial (trotz der Kritik - welche eigentlich nur wegen der Begründung so lang ausgefallen ist...).
Es ist auf jeden Fall für Anfänger geeignet und nur zu empfehlen.

Es sollte mehr solche Tutorials auf Free-Hack geben.
Daumen hoch :)


mfG. BlackBerry

sarex
24.07.2009, 07:56
das is gut erklärt und hilfreich danke
mfg

Kolabi
24.07.2009, 11:52
Hey,
erstmal danke für die Antworten und danke an BlackBerry für das das Aufzeigen der Mängel. Ich werd' versuchen es im nächsten vTut besser zu machen.

Ich habe die Präsentation auch noch hochgeladen (siehe erste Post).

Lynx_
24.07.2009, 12:13
Das nenn ich doch mal Zufall. Bin grade beim Thema Funktionen in C++ und schon bekomm ich Unterstützung^^. Werde es mir gleich mal anschaune...

Feedback kommt per Edit.

mfg Lynx

//Edit: Wow super Tutorial hat mir echt gut gefallen weiter so!

bexxter
25.07.2009, 09:53
Sehr schön, hat mir aufjedenfall weitergeholfen.

Nur4mon
25.07.2009, 09:59
Nice :P

Kannst du auch ein Tut ober Zeiger machen? xD

Kolabi
25.07.2009, 11:52
Ich hab noch ein kleines Tutorial über Arrays gemacht ( siehe 1. Post ).
Ich werde, wenn ich Zeit habe, Zeiger vorstellen ;-)

Dauerbauer
25.07.2009, 12:04
Habs mir mal angeguckt. Ist echt nicht schlecht geworden, nen weiteres wär klasse :p

blackberry
25.07.2009, 12:08
Wenns mehr Tuts werden kann ich den Thread gerne Sticky machen (:
Kritik zum Array Tutorial folgt (Download @ 35%).


mfG. BlackBerry

EDIT:
Gutes Tut!

Musterlösungen:
http://www.megaupload.com/?d=1XHQQXP3
(Funktionen 1/2, Arrays 1/2)

Nicht über meinen C-Stil wundern - ich <3 printf :)

Marex
26.07.2009, 11:42
Wow ... Danke !!!

Sowas hab ich gebraucht :DDD

Kolabi
26.07.2009, 18:35
Zeiger hinzugefügt.
Siehe erste post.

phil333
26.07.2009, 19:05
Wow, wierklich gutes tut, danke!!

blackberry
26.07.2009, 19:15
Erstmal wieder das bekannte Lob: super Tutorial (auch von der grafischen Aufarbeitung her) doch ein bisschen was habe ich noch hinzuzufügen:


bei deiner Ausgabe schreibst du: Wert von *zeigerA und gibst zeigerA aus - was ja *zeigerA sein sollte!
die Adressen sprichst du immer null zweiundzwanzig whatever - ich hätte eher deutlich gemacht, dass es sich hierbei nur um Hexadezimalzahlen handelt
du hast bei ~01:25 gesagt, dass es zu Fehlern kommt, wenn man Zeiger nicht initialisiert - mir fehlt ein Warum, da es zwar möglich ist, dass man versucht so einen uninitialisieren Zeiger z.B. mit memset zu benutzen und das dann Laufzeitfehler hervorruft, jedoch nicht zwingend zu Fehlern führt! (wer mit Bedacht programmiert macht auch dabei keine Fehler - initialisiert hin oder her)
das "kaufmännische Und", wie du es bezeichnet hast, wird auch Adressoperator genannt ;)
bei *zeigerA heißt * "unärer Adressoperator"
der Stack wächst von unten nach oben an - wenn deine Abbildungen bei 10:57 nicht umgedreht waren wären diese also falsch
du hast bei 15:03 gesagt, dass man auf die Adresse nicht mehr zugreifen kann - das ist richtig - mir fehlt aber auch hier das Warum - weil man die Adresse nicht mehr kennt (der Zeiger in dem die Adresse gespeichert wurde wurde ja überschrieben)
Systemabsturz wenn man zweimal delete verwendet? Ich habe folgendes Programm ausgeführt und mein PC läuft immernoch ;)

int main(void)
{
int *zeiger = new int;

delete zeiger;
delete zeiger;

return 0;
}
mir fehlt ein wenig das Behandeln von Zeigerarithmetik
ein Vergleich zwischen Arrays und Zeigern wäre angebracht gewesen (zumal du ja ein Tut über beide gemacht hast und Arrays und Zeiger in C++ eng miteinander verwandt sind)
WO SIND DIE ÜBUNGEN? :O

PS: der Thread ist nun Sticky!


mfG. BlackBerry

Nookie
26.07.2009, 20:03
Joa mach weiter so...
endlich ma was ohne das ganze Fachchinesisch...
ich verstehe das meiste auf anhieb und soweit ich das gesehen habe hast du dich auch nicht an den .Net scheiss geklebt :P

vielen Dank...
ich freu mich über mehr davon :P

Sirect
26.07.2009, 20:29
Ich hab alles verstanden, aber ich finde du hast nicht gut genug erklärt wozu ich Zeiger überhaupt brauchen kann. Klar, wie Sie funktionieren, wie ich Sie ändern kann, aber welchen Konkreten Vorteil habe ich dadurch?
Ansonsten wieder mal 1A Tutorial :D

Nookie
28.07.2009, 21:41
sag mal...
wird da noch mehr kommen?

etwas über klassen wäre nicht schlecht... :P

und oder über das arbeiten mit externen Daten fände ich auch interessant :P

blackberry
28.07.2009, 22:17
Klassen ist zu groß.
Da säße man Stunden dran alles zu erklären - außerdem: hier ist Eigeninitiative gefragt.
Ihr könnt nicht erwarten euch von Kolabi C++ mit VideoTutorials in den Arsch schieben zu lassen!

scratsch
28.07.2009, 22:58
Das ist eine Supper Klasse Tutorial-Reihe!
Ich hoffe du führst sie noch fort! Vielleicht ja noch mit ein paar Basic-Dingen.

Gruß,
scratsch

EpicByte
03.04.2010, 20:02
Ich weiß ich weiß ich bin ein Leichenschänder :D
Aber weil hier jeder schreibt geiles Tut, wollte ich fragen ob das jemand reuppen kann.

DocD00
07.04.2010, 11:35
Welches denn?

Ich lad' mir gerade das mit den Array's runter und das geht...
Die anderen schau ich mir dann auch noch an, wenn gibt's ein THX ;)

Cristhecrusader
07.04.2010, 13:02
Die links funktionieren alle...

DocD00
07.04.2010, 18:39
Genau!

Hamma Geile Tutorials!!!!!

Noob2323
08.04.2010, 17:07
Hab mir nur das mit den Zeigern gedownloadet und auch noch nicht fertig geguckt.
Mir ist ein Fehler aufgefallen, bin mir sicher dass du es richtig weißt nur hast dich vielleicht versprochen oder so.

Bei 13:22 sagst du man kann um die Speicheradresse, auf die der Integer-Zeiger zeigerA zeigt auch den Adressoperator vor "zeigerA" schreiben. Also statt


cout << "Speicheradresse : " << zeigerA << endl;

könne man auch mit


cout << "Speicheradresse : " << &zeigerA << endl;

zum selben Ergebnis kommen, man müsse den Aderssoperator allerdings nicht verwenden.

Doch das sind 2 verschieden Dinge. Beim ersten wird die Speicheradresse ausgegeben, auf die der zeiger zeigt, also die dynamische "Heap-integer".

Beim 2. wird die Speicheradresse vom Zeiger HIMSELF ausgegeben. :)

Finde das Tutorial alles in allem nicht schlecht :) An einigen Stellen hätte man noch Sachen verdeutlichen können, aber es hilft sicherlich einigen :)

B4n4n4
11.04.2010, 18:27
Sehr schöne Tutorials!
Habe damit einen Einstieg in C++ gefunden!!

Made my Day:
C++ - Funktionen ~ 20:50-21:00
"Geben wir mal eine höhere Zahl ein, meinetwegen 30.."
Er gibt die Zahl ein...
"...daass.."
Ergebnis: 1409286144
"..ist dann auch richtig."
GENIAL :D

MfG
B4n4n4

Cristhecrusader
14.04.2010, 03:08
Wie heisst eigentlich das programm, mit dem du die mathe beispiele zeigst?(bei arrays)

Edit:
Kopf tisch.... OpenOffice Math grade eben gesehen...

ch3rrY
11.06.2010, 14:18
hätte vielleicht nochn vorschlag wie mans hätte kleiner machen können bei Funktionen :P
FrEe-hAcK.com :: NoPaste (http://nopaste.free-hack.com/index.php?id=5da87f13e9)