Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: C++ (auch C++0x und C++11) ::  Weiter gehts... Nur wo?     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Yada
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.12.2009
Beiträge: 31
Beitrag Yada Mitglied 12:20:57 29.01.2012   Titel:   Weiter gehts... Nur wo?            Zitieren

Hallo!

Ich beschäftige mich nun doch schon einige Zeit mit dem Programmieren (hauptsächlich aber Skriptsprachen) und will seit geraumer Zeit nun etwas anspruchsvollere Sprachen (à la C++) lernen. Zwischenzeitlich habe ich mich auch mit Java beschäftigt, bzw. mache es immer noch. Irgendwie jedoch bietet C++ mir einen größeren Anreiz - auch wenn es, subjektiv gesehen, deutlich schwerer ist.
Nichtsdestotrotz möchte ich mein C++ Wissen erweitern.

Die Basics sind mir durchaus bekannt (welche, wenn man sich schon länger mit Programmieren beschäftigt, nicht ganz so schwierig zu erlernen sind). Die Sache ist, dass ich nun weiter will. Nur wo? Persönlich würde ich mich auf keinen Fall in die Kategorie "Fortgeschritten" stecken, sondern eher "nach Anfänger" (spricht man dann von Amateur? Keine Ahnung so wirklich, aber egal).

Hat jemand eine Lektüre für diesen Teil des Lernens auf Lager? Es gibt ja schier endlose Bücher über C++, wobei ein Großteil davon veraltet ist. Gerne mit Schwerpunkt auf OOP und anderen Themen von C++ die doch schon "fortgeschrittener" sind (Templates, ...).

Schöne Grüße
redrew99
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.03.2011
Beiträge: 244
Beitrag redrew99 Mitglied 12:39:06 29.01.2012   Titel:              Zitieren

Wenn Du Dich selber noch als Anfänger bezeichnest,
könnten vielleicht zunächst folgende Bücher interessant sein:

- Der "Primer" oder
- der "C++ Programmierer"

Als Fortgeschrittener könnte u.a.:

Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library

Design Patterns. Elements of Reusable Object-Oriented Software.


Zuletzt bearbeitet von redrew99 am 12:43:25 29.01.2012, insgesamt 1-mal bearbeitet
Hacker
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2011
Beiträge: 1855
Beitrag Hacker Mitglied 13:27:14 29.01.2012   Titel:   Re: Weiter gehts... Nur wo?            Zitieren

Yada schrieb:
anderen Themen von C++ die doch schon "fortgeschrittener" sind (Templates, ...).


Ist das wirklich fortgeschritten? Das ist doch eher Anfänger-Zeug, nicht?
cooky451
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.10.2010
Beiträge: 4840
Beitrag cooky451 Mitglied 13:31:08 29.01.2012   Titel:   Re: Weiter gehts... Nur wo?            Zitieren

Hacker schrieb:
Yada schrieb:
anderen Themen von C++ die doch schon "fortgeschrittener" sind (Templates, ...).

Ist das wirklich fortgeschritten? Das ist doch eher Anfänger-Zeug, nicht?
Er schreibt doch selbst, dass er noch Anfänger ist, aber eben kein blutiger Anfänger. Also eigentlich sucht er ein Buch, dass insbesondere auf die Eigenheiten von C++ eingeht.

Mal als Tipp, auch ganz ohne Buch:
http://www.parashift.com/c++-faq/
Super Seite. :live:

_________________
Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2256
Beitrag Th69 Mitglied 13:51:46 29.01.2012   Titel:              Zitieren

Auch HumeSikkins hat eine gute C++ FAQ-Seite unter http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs
Weiß eigentlich einer, wo HumeSikkins abgeblieben ist?
Yada
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.12.2009
Beiträge: 31
Beitrag Yada Mitglied 15:03:02 29.01.2012   Titel:   Re: Weiter gehts... Nur wo?            Zitieren

cooky451 schrieb:
Hacker schrieb:
Yada schrieb:
anderen Themen von C++ die doch schon "fortgeschrittener" sind (Templates, ...).

Ist das wirklich fortgeschritten? Das ist doch eher Anfänger-Zeug, nicht?
Er schreibt doch selbst, dass er noch Anfänger ist, aber eben kein blutiger Anfänger. Also eigentlich sucht er ein Buch, dass insbesondere auf die Eigenheiten von C++ eingeht.


Richtig. Mir würde es wenig helfen, ein Buch zu lesen, dass mir erklärt wie If-Bedingungen funktionieren, usw.. ;)

Und danke für die Links!


Zuletzt bearbeitet von Yada am 15:03:17 29.01.2012, insgesamt 1-mal bearbeitet
pumuckl
Moderator

Benutzerprofil
Anmeldungsdatum: 21.06.2005
Beiträge: 6578
Beitrag pumuckl Moderator 16:16:47 31.01.2012   Titel:              Zitieren

Th69 schrieb:
Weiß eigentlich einer, wo HumeSikkins abgeblieben ist?


Da es zum Teil mal wieder am guten Ton vorbei ging und sowieso OT war hab ich die Folgediskussion auf die Frage mal abgeschoben:

http://www.c-plusplus.de/forum/298986

_________________
Du brauchst Hilfe? - Kleines Einmaleins der Forenregeln.
When your hammer is C++, everything begins to look like a thumb. (Steve Haflich)
Yada
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.12.2009
Beiträge: 31
Beitrag Yada Mitglied 16:25:43 01.02.2012   Titel:              Zitieren

So, nachdem ich mich wieder bisschen damit beschäftigt habe (und ein neuer Thread einfach nur Verschwendung wäre):

- Pointer:
Pointer-Artithmetik ist mir noch etwas schleierhaft. Die Syntax dazu ist zwar einfach, aber mir erschließt sich der praktische Nutzen einfach nicht - evtl. weil ich das System selbst noch nicht ganz durchgeblickt habe.

- Templates:
Templates verstehe ich jetzt zwar, aber auch hier fehlt mir praktische Nutzen. Wo setzt man Templates gezielt ein?
cooky451
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.10.2010
Beiträge: 4840
Beitrag cooky451 Mitglied 17:29:20 01.02.2012   Titel:              Zitieren

Yada schrieb:

- Pointer:
Pointer-Artithmetik ist mir noch etwas schleierhaft. Die Syntax dazu ist zwar einfach, aber mir erschließt sich der praktische Nutzen einfach nicht - evtl. weil ich das System selbst noch nicht ganz durchgeblickt habe.
Schließt das Referenzen mit ein, oder meinst du wirklich nur Pointer?

Yada schrieb:

Templates verstehe ich jetzt zwar, aber auch hier fehlt mir praktische Nutzen. Wo setzt man Templates gezielt ein?

Nehmen wir mal einen offensichtlichen Nutzen: Container. Alle C++ Container sind Templates, damit sie für jeden Datentypen funktionieren. Ein std::vector<char> nutzt z.B. den gleichen Code wie ein std::vector<int>, obwohl diese wahrscheinlich unterschiedlich viel Speicher für ein Element reservieren etc.
Trotzdem unterscheidet sich die Funktionsweise für verschiedene Typen nicht, deswegen nutzt man ein Template.

_________________
Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
Strop
Unregistrierter




Beitrag Strop Unregistrierter 17:54:01 01.02.2012   Titel:              Zitieren

Schau dir mal die Bücher von: Bjarne Stroustrup an. (Das is der Erfinder von C++ von dem gibt es Bücher für anfänger sowie fortgeschritte etc. )
Yada
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.12.2009
Beiträge: 31
Beitrag Yada Mitglied 20:10:08 01.02.2012   Titel:              Zitieren

Danke für die Buchempfehlung, werde ich mir ansehen!

Und cooky:
Für den Moment nur Pointer an sich.
cooky451
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.10.2010
Beiträge: 4840
Beitrag cooky451 Mitglied 20:15:45 01.02.2012   Titel:              Zitieren

Yada schrieb:

Und cooky:
Für den Moment nur Pointer an sich.
Was heißt für den Moment? Es ist ein Unterschied ob man versucht den Sinn von "Zeigern" im Sinne von Variablen, deren Wert auf etwas zeigt zu erklären, oder den Sinn von Pointern neben Referenzen.

_________________
Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
Hacker
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2011
Beiträge: 1855
Beitrag Hacker Mitglied 20:32:56 01.02.2012   Titel:              Zitieren

Pointer sind sehr sinnvoll, wenn du z.B. eine Globale "Variable" hast, die in vielen Modulen genutzt wird, aber deren Wert oder Inhalt erst zur Laufzeit ermittelt wird, also in der Main. Z.B. in Qt als qApp, ein Zeiger auf die aktuelle QApplication, die als allererstes in main() erzeugt wird, implementiert; in Headern muss man mit der aktuellen qApplication arbeiten, kennt aber ihre Werte noch nicht.
Neben Referenzen können Zeiger ihren Wert ändern, also auf verschiedene Dinge zeigen, was in manchen implementierungen sinnvoll ist.

_________________
Wenn du kein IPhone hast, ... dann hast du was anderes.
Yada
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.12.2009
Beiträge: 31
Beitrag Yada Mitglied 17:23:16 07.02.2012   Titel:              Zitieren

Okay, so langsam verstehe ich Pointer. Zumindeste glaube ich das. Soweit ichs verstanden habe, zeigen Pointer auf bestimmte Speicherzellen und sind somit unabhängig vom eigentlichen Wert. Soweit richtig, oder?

Wäre dieser Gedankengang dann "sinnvoll" bzw. überhaupt möglich:
Eine Applikation X verfügt über die Klasse Y mit der Klassenvariable Z. Der Wert, den Z bekommen soll, wird bereits vor der Initialisierung von Klasse Y festgelegt. Könnte man also für den Wert Z einen Pointer verwenden, sodass der Konstruktor der Klasse Y auf diese Speicherzelle zugreift? Stark vereinfachtes Beispiel, aber immerhin würde man sich die Arbeit sparen der Klasse die Variable Z übergeben zu müssen.
Hacker
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2011
Beiträge: 1855
Beitrag Hacker Mitglied 19:43:37 07.02.2012   Titel:              Zitieren

Ne, da nimmt ma static constants.

C/C++ Code:
struct Y
{
    static const size_t meinenummer;
};

//Außerhalb der Klasse:
const size_t Y::meinenummer;
C/C++ Code:
struct Y
{
static const size_t meinenummer;
};

//Außerhalb der Klasse:
const size_t Y::meinenummer;
C/C++ Code:
struct Y
{
    static const size_t meinenummer;
};

//Außerhalb der Klasse:
const size_t Y::meinenummer;

Weiß nicht, ob es so richtig ist, ich glaube bei Basisdatentypen muss man sie außerhalb, bei Klassen innerhalb der Klassendefinition definieren.

_________________
Wenn du kein IPhone hast, ... dann hast du was anderes.
Gugelmoser
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.07.2007
Beiträge: 857
Beitrag Gugelmoser Mitglied 19:52:40 07.02.2012   Titel:              Zitieren

Yada schrieb:
Okay, so langsam verstehe ich Pointer. Zumindeste glaube ich das. Soweit ichs verstanden habe, zeigen Pointer auf bestimmte Speicherzellen und sind somit unabhängig vom eigentlichen Wert. Soweit richtig, oder?
Ein Zeiger ist genauso wie ein int, char, float eine Variable, darum auch Zeigervariable. Der Wert der Variablen ist eine Adresse. Bedeutung: Der Zeiger verweißt auf die Adresse, die er gespeichert hat.


Zuletzt bearbeitet von Gugelmoser am 19:53:03 07.02.2012, insgesamt 1-mal bearbeitet
schtätick
Unregistrierter




Beitrag schtätick Unregistrierter 19:54:17 07.02.2012   Titel:              Zitieren

Hacker schrieb:
Ne, da nimmt ma static constants.
Ne, da nimmt ma non-static constants.
Konkret: Lass das static weg, definiere den Wert innerhalb der Klasse und hör auf, hier Antworten zu geben.
Hacker
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2011
Beiträge: 1855
Beitrag Hacker Mitglied 20:08:11 07.02.2012   Titel:              Zitieren

schtätick schrieb:
Hacker schrieb:
Ne, da nimmt ma static constants.
Ne, da nimmt ma non-static constants.
Konkret: Lass das static weg, definiere den Wert innerhalb der Klasse und hör auf, hier Antworten zu geben.


Gut, ich meine nur, dass der Wert ja sowieso für alle Instanzen gleich ist, wieso dann nicht gleich static? Merke: er ist vor der Klasseninstanziierung festgelegt.

_________________
Wenn du kein IPhone hast, ... dann hast du was anderes.
Yada
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.12.2009
Beiträge: 31
Beitrag Yada Mitglied 01:52:29 08.02.2012   Titel:              Zitieren

Ah okay, danke.

Dann gleich mal was völlig anderes:
Da man ja bekanntlicherweise programmieren sollte, um eine Sprache irgendwann zu beherrschen, und ich das ganze etwas "ausschmücken" wollte, habe ich angefangen so eine Art "Snake"-Klon zu basteln (Konsolenvariante).

Gelöst hab ichs so, dass ich die Koordinaten in einem Zweidimensionalen-Array speichere und mich via getch() bzw. den Pfeiltasten schonmal im bestimmten Spielraum bewegen kann.
Problem nur ist die Art und Weise meiner Spielfeld-"Generierung". Diese wird bei jeder Bewegung aufgerufen um das Spielfeld zu updaten - unschöner Nebeneffekt sind die Ruckler die man kurzzeitig vom Clearscreen sieht.

Kann man das irgendwie - möglichst mit Basics und Co. - umgehen?
C/C++ Forum :: C++ (auch C++0x und C++11) ::  Weiter gehts... Nur wo?   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.