Bin ich zu Blöd dafür

@tayyfan also ich habs auch mit diesem buch probiert dann auf die seite gelegt für ein jahr weils nich ging und dann hat ich auch keine lust. Jetzt nach einem Jahr IT-Schule mit c++ und vorher in php oop gelernt und nur 30 minuten vom lehrer alles erklören lassen und voila ich kapiers! Wo war das problem? Diesse Buch macht zwar ne schritt für schirtt anleitung aber einfach zu sagen das is das und dort is das und das braucht man hier damit man weis was wo wann wo hinkommt, steht da nicht. Da steht am anfang nur diese doofe schritt für schritt anleitung. Die auch noch relativ lahm daherkommt.

Hm am besten lern zuerst bisl c++ mit konsole. Is zwar doof aber dann kannst in vc++ gleich mehr schreiben und bist nich so abhängig.und vorallem das oop solltes kapiert ham dann is es einfach. Weil ja button listenfield... objekte sind die eigenschaften ham und methoden...
 
Ne, einen Link habe ich gerade leider nicht, aber probier's aus:
Code:
#include <iostream>
using namespace std;

void funk(); // Eine globale Funktion

class A { public: void funk(); /* Hier eine Methode */ };

int main()
	{
	cout << "Globaler Zeiger belegt: " << sizeof(&funk) << " Bytes" << endl;
	cout << "Methodenzeiger belegt: " << sizeof(&A::funk) << " Bytes" << endl;

	return 0;
	}

void funk() {}
void A::funk() {}
Ich glaube in dem Buch "Die C++ Programmiersprache" oder/und in "Modernes C++ Design" müsstest du es allerdings finden.
 
Doch prinzipiell bin ich der Meinung das Programmierer eher auf Bücher verzichten können, das liegt in der Sache an sich, weil man prinzipiell immer üben kann, weil die meisten immer einen PC zur Hand haben und das Internet auch viel bietet, auch viele Grundlagentutorials. Ich rate ja keinem von Büchern ab (vor allem am Anfang ganz praktisch, weil man weniger suchen muss), ich meine nur, es geht auch so (und mit Medizin lässt sich Info da überhaupt nicht vergleichen, weil bei ersterem ohne eine Unmenge von Büchern gar nix geht, nicht als Wertung betrachten, das ist einfach wie Apfel und Birne). Ach ja, SMiller, vor 8 Jahren war ich 12 und da habe ich nicht mit C angefangen und prinzipiell sehe ich das Programmieren auch nur als Weg um etwas umzusetzen, wobei ich mich stets nur mit Mechanismen befasst habe, die ich auch beim Programmieren brauche, bzw. natürlich mit der Art und Weise wie ein PC arbeitet. Aber diese Zeigersache ist doch super spezifisch, das hat doch nichts mit Programmieren an sich zu tun, das ist doch nur eine C++ interne eigene Konvention, die den Programmierer nur höchst beiläufig streift und deshalb auch nichts über dessen Qualifikation aussagt, wenn er davon nix weiß. Solche Konventionen gibt es schließlich hunderte in allen möglichen Sprachen. Aber klär uns doch mal auf, wie viel Bytes sind's denn und welcher Art ist die Zusatzinfo, die mitgespeichert wird. ;)
 
Zuletzt bearbeitet:
Man muss sowas nicht wissen, klar. Aber belastet es dich, wenn du weißt, wie der Compiler die Sache verwaltet, keine Neugier? :)
Wieviele Bytes es sind? Bei mir sind es 12 auf dem 32--Bit System und dem Compiler von Borland. Welcher Art? kA, habe den Compiler nicht geschrieben.
Ich denke damit ist es gegessen, wer der bessere Programmierer ist ist mir egal, wir haben verschiedene Ansichten und das stört mich persönlich nicht.
Gute Nacht.
 
@Sicaine also jetzt habe ich mir mal vorgenommen das buch mal durchzulesen,
ich frage mich ob man dafür begabt sein muss um es zu begreifen
da schreibt mir das buch vor was konstanten sind (zwei arten literale und symbolische) wie man typedef gebrauchen kann u.s.w aber manchmal frage ich mich was ich damit anfangen kann....
ich will nur verstehen wie die c++ sprache funktioniert
genau so denken wie die sprache
ich bin schon bei tag 5 aber habe vielleicht mal tag 1 bis 3 verstanden
doch ich frage mich was ich damit anfangen soll
naja muss mir einige bücher zulegen wie es aussieht...
:p
 
Original geschrieben von Dudadida
wobei ich mich stets nur mit Mechanismen befasst habe, die ich auch beim Programmieren brauche, bzw. natürlich mit der Art und Weise wie ein PC arbeitet.

Deine Einstellung ist komplett falsch und führt zu schlechter Software.
Das Programmieren hört nicht beim schreiben richtiger Syntax auf, sondern fängt da gerade erst an.
Ich habe 2 Bücherschränke voll mit Büchern, und das auch obwohl ich seid langer Zeit programmiere, und seid mehreren Jahren auch beruflich.
Ich kaufe/lese mir dennoch 2 Bücher pro Monat und werde wohl auch noch in 10 Jahren das so machen.
Designpatterns, UML, Paradigma sind recht schwer erlernbar ohne richtige Literatur.
SMiller hat zudem recht, mann *muss* zwar nicht wissen wie der Compiler funktioniert um
Syntaxerror freie Programme zu erstellen, aber um performante und wartbare, portable Programme
zu erstellen ist es ein sehr wichtiges Wissen.

Original geschrieben von Dudadida

Aber diese Zeigersache ist doch super spezifisch, das hat doch nichts mit Programmieren an sich zu tun, das ist doch nur eine C++ interne eigene Konvention, die den Programmierer nur höchst beiläufig streift und deshalb auch nichts über dessen Qualifikation aussagt, wenn er davon nix weiß.

Das ist definitiv falsch. Zeiger sind nicht C++ spezifisch. Mann kommt an der Art wie Zeiger funktionieren, wie Refernezen funktionieren auch nicht dran vorbei wenn mann eine Sprache, ohne Zeiger, wie Java fortgeschritten programmieren will.
Obwohl ich C++ schon seid Jahren nicht mehr angefasst habe, und mich nur Java (Ruby und konsorten) widme, helfen mir die C++ Kentnisse die ich mir seinerzeit angelernt habe, um die JVM zu verstehen und performant zu programmieren, immer noch. Gerade jene Kentnisse die die Speicherverwaltung betreffen sind hierbei sehr wichtig.

Zum Threadstarter:

ich frage mich ob man dafür begabt sein muss um es zu begreifen

Nö, ich habs doch auch begriffen :-) *soll eine aufmunterung sein*
Du brauchst nur eines ganz sicher, Geduld.

da schreibt mir das buch vor was konstanten sind (zwei arten literale und symbolische) wie man typedef gebrauchen kann u.s.w aber manchmal frage ich mich was ich damit anfangen kann....

Das ist eine Frage, die auf eine ähnliche Art beantwortet werden kann, wie die oft im PHP Forum vorkommende Frage: Wozu Objectorientierung.
Mann muss bei prozedualer Programmierung erst an die Grenzen stossen, bei denen mann merkt das es schwer zu handlend wird um wirklich die Vorteiler OOP zu sehen.
Genauso ist es die Sache der Konstanten. Du wirst selber ein Stück Code schreiben, und dir auf die Schulter klopfen " jetzt hab ichs begriffen" ;)
Unter Java und Interfaces ist es ähnlich, die Sprüche die in Büchern stehen wie Interfaces geben Zusicherrungen das dies und jenes implementiert ist, sind zwar richtig aber nicht hilfreich. Dennoch kommt mann später an eine Stelle an der mann diese Eigenschafft zu schätzen weiss.

ich bin schon bei tag 5 aber habe vielleicht mal tag 1 bis 3 verstanden
doch ich frage mich was ich damit anfangen soll
naja muss mir einige bücher zulegen wie es aussieht...

Das mit in 21 Tagen ist ein Titel. Gerade bei C++ ist es nicht einzuhalten mit dem Buch.
Im übrigen finde ich das Buch recht ok, nur darfst du nicht erwarten das du in 21 Tagen fertig bist.
Kleiner Tip um jedes Kapitel zu verstehen, erst das Kapitel auf Teufel komm raus einfach mal an einem Abend durchlesen.
Am nächsten 1-2 Tage die Beispiel (jedes!) durcharbeiten, sprich abschreiben danach mit Buch und Erklärung im Debugger verfolgen (dabei gleich lernen den Debugger !richtig! zu nutzen).
Ein Tag drauf würde ich nochmal ein eigenes Progrämmchen schreiben das auf dem im Kapitel vorgestelltem Wissen basiert.

Damit wärest du schon bei 4 Tage pro (Buchtag). Damit ändert sich der Title in C++ in 84 Tagen was auch schon etwas realistischer ist ;)
 
Hm ich find Bücher auch wesentlich besser. Ok ich muss erst hinten reingucken oder das inhaltsverzeichniss bemühen aber es ist mir lieber. Auch kann ich dann im Bett noch lesen oder sonst wo und brauch keinen pc wenn mir was einfällt und ich nachschlagen will.

Auch das mit dem String in c++ fand ich genial. Da sieht man doch erst wie eine porgramiersprache wirkich aufgebaut ist.

@tayyfan hm begabung? Ka denke aber schon dass du Logisch begabt sein solltest. Für mich wennichs einmal verstanden habe, is es nich mehr schwer. Einzige Problem: Wie icih neue Befehle methoden... lerne. Das buch als Ebook is ganz lustig weil ich mir damit jetzt rausziehen kann was ich will, aber als Afnänger... vergiss das mit diesem buch. Terrashop hat ne menge und such dir mal ein 2 andere bücher.
Und wie schon gesagt, fang erst mal mit c++ an und oder php wegen oop. Dann is es ein kinderspiel.

@dudaidais hm ich les auch as php-buch und weis dadurch was möglich ist! Ich kenn auch szepialfälle die ich jetzt zwar nich brauche, aber später mich nich mehr aufhalten werden.
 
@Christian Fein: Ich denke nicht, dass meine Einstellung da so falsch ist. Lies dir doch mal richtig durch, was ich geschrieben habe. Ich verweigere mich doch nicht dem Wissen, meine Meinung ist nur, dass man keine Bücher brauch, um sich das anzueignen. Turbo Pascal hatte ich mir mit 13 sogar ohne Internet beigebracht, nur mit der Hilfe, hat auch funktioniert (auch wenn es etwas länger gedauert hat). So soll man es aber gar nicht machen, ich rate lediglich dazu, sich gut zu überlegen, was man wirklich brauch, denn zwangsläufig führt überflüssiges Wissen dazu, dass man es wieder vergisst und erfahrungsgemäß triefen viele Bücher von Wissen das man schon hat oder nicht braucht und sich deshalb nicht merkt. Spezialwissen bekommt man vielleicht nur aus Büchern, dafür ist die "Qualitätskontrolle" des Internets zu schlecht (bzw. nicht vorhanden), aber es ging hier die ganze Zeit darum in C/C++ einzusteigen und da gibt's meiner Meinung nach gute Seiten im Netz. Auch für einige Spezialfälle bspw. OpenGL braucht man definitiv kein Buch, das Red Book gibt's im Netz, Tutorials um die Funktionen zu verstehen gibt's wie Sand am Meer und der Rest sollte mit einem Funken Logik zu machen sein.
Du kannst mir glauben, dass ich genug über die Mechanismen eines PCs Bescheid weiß um keine schlechte Software zu schreiben, im Gegenteil, ich bin sehr viel am Optimieren mit Assembler etc. (im Vergleich zu dem was der Comp. erstellt hat) und damit verschlechtere ich meine Programme sicher nicht. Ich denke ich weiß sehr gut, wie man einen Algorithmus effizient gestaltet, bzw. was ich dabei PC-bedingt zu beachten habe. (Ich glaube auch nicht, dass sich hier außer mir viele (aus dem nicht professionellen Bereich) hinsetzen und teilweise die Prozessortakte zähle, die eine Zählschleife in einem kritischen Abschnitt benötigt und versuchen da zu optimieren.)
Und was ich mit "Zeigersache" meine, erschließt sich eigentlich aus dem Kontext, nämlich die Aussage von SMiller, dass virtuelle Methodenzeiger mehr Speicher brauchen. Ich muss dagegen ankämpfen mir nicht ver**scht vorzukommen, wenn ich deine Erklärung dazu lese. Mir ist voll und ganz bewusst, dass Zeiger nicht C spezifisch sind, sonst hätte ich sie ja nicht in Turbo Pascal/ Delphi/ Assembler verwenden können.

@SMiller: Nein es schadet nicht das zu wissen, aber da ich noch nie über einen Fall gestolpert bin, in dem es relevant gewesen wäre, wäre ich auch nicht gestorben, hätte ich es nie erfahren. Und eben weil ich es nicht brauche, bringt mich die Neugier auch nicht um, wenn die Größe von 'nem int plötzlich eine andere wäre, hätte ich bestimmt mehr Interesse aufgebracht :).
 
Du kannst mir glauben, dass ich genug über die Mechanismen eines PCs Bescheid weiß um keine schlechte Software zu schreiben, im Gegenteil, ich bin sehr viel am Optimieren mit Assembler etc. (im Vergleich zu dem was der Comp. erstellt hat) und damit verschlechtere ich meine Programme sicher nicht.
Hm, die Optimierung auf dieser Basis steht auf meiner Prioritätenliste ganz, ganz unten. Das überlasse ich getrost den Compilern.
Gute Code hat meiner Meinung nach folgende Merkmale:
1. erfüllt seine Aufgabe
2. ist stabil
3. ist leicht wartbar (lesbar)
4. ist erweiterbar

Erst wenn Punkt 1 nicht zutreffen würde (infolge von mangelnder Performanz), würde ich mich an Optimierung machen. Und die sähe dann nicht so aus, dass ich dem Compiler die Arbeit wegnehme, sondern würde auf einer höheren Ebene ansetzen, durch Suchen und Finden von Engpässen und Wahl günstigerer Algorithmen oder Container.
Das "zweitlowleveligste" Optimierungsproblem, das ich bisher hatte, war die Entwicklung einer platzsparenden Stringklasse, weil der std::string auf der XBox zu fett war (28 Byte -- leer!)
Das "lowleveligste" eine Reihe von Funktionen zur Manipulationen von Bitmaps.

Hier noch einer meiner Lieblingslinks zum Thema Optimierung: http://www.flounder.com/optimization.htm
 
Zuletzt bearbeitet:
Zurück