C++ programma lezen

Status
Niet open voor verdere reacties.

Voldemort

Gebruiker
Lid geworden
21 jul 2006
Berichten
111
Beste,

Zoals sommigen misschien weten probeer ik C++ te leren. Ik dacht dat het zou helpen om wat open-source codes te bekijken zoals de Firefox code, deze is ook C++. Alleen, hoe begin je eraan? Van als je een bestand opent staat er:

Code:
#include <eenanderbestand.h>

Zit er een logische structuur achter of is het normaal dat alles zowat alles include? Hoe begin je eraan om zo'n code te lezen?

Mvg.
 
deze code #include <eenanderbestand.h> bestaat eigenlijk niet
de meeste include codes zul je wel degelijk van buiten moeten leren .
ik zal eens een beetje uitleg geven over deze code .

Code:
//-----------------------------------------------
//  Headers
//----------------------------------------------
#include <iostream>  // header

//---------------------------------------------
//  Begin Code
//---------------------------------------------
using namespace std;
int main () {     // main functie
     cout <<" test " << endl;   // je tekst
     printf("test2: die slash n zie je niet in je console\n");  // je tekst 

     return 0;    // sluit program af en vergeet je } niet 
}

bij de 2 slashes mag je altijd uitleg geven hier is een voorbeeld.

// hier je uitleg

je kunt het ook op deze manier
/*
hier je
uitleg
*/

de #include <iostream> zijn de headers namelijk de broncode .
omdat we in deze code cout gaan gebruiken nemen we als header #include <iostream>
je kan ook #include <iostream.h> doen maar soms maakt het uit welke compiler je gaat begruiken .
int main() is een main functie
achter het aangeven van de main-function beginnen we de code door met een openings-accolade te openen.
dan voor een bericht te type kun je cout of printf nemen .

de return 0; wilt zeggen dat het programma afsluit .

als je het niet snapt is het geen probleem ik zal een site geven waar al de nodige uitleg instaat .
site: http://members.chello.nl/~s.pampiermole/C++/lswmc/lswmc.html
site: http://members.lycos.nl/carni4/cpp12.php
site: http://www.cppgameprogramming.com/cgi/nav.cgi?page=intro
 
Laatst bewerkt:
je kan ook #include <iostream.h> doen maar soms maakt het uit welke compiler je gaat begruiken .
Jim, er is meer aan de hand dan de compiler die je gebruikt! de include van iostream.h neemt een ANDERE file op dan iostream. Het is zo dat voor zo goed als alle headers van de STL de .h-file de definitie van C of van C++ van voor het jaar 99 bevat. de files zonder .h bevatten de nieuwe definitie. Het gaat dus niet om de compiler je gebruikt wel om welke versie van de taal!!!

--Johantrax
 
ja das waar .
maar ik gebruik Visual C++ 2005 :p en daar is dat niet nodig denk
 
Ik snap de basis van C++ al. Ik bedoelde met de vraag:

Als ik de firefox code wil lezen, waar begin ik dan? Er zijn zoveel mappen en bestanden, waar begin je eraan?
 
Ik snap de basis van C++ al. Ik bedoelde met de vraag:

Als ik de firefox code wil lezen, waar begin ik dan? Er zijn zoveel mappen en bestanden, waar begin je eraan?

Bij een C++ source code zou ik beginnen met het bestand of klasse waar de main() functie instaat. Vanuit daar verder werken. :)
 
FireFox source is volgens mij niet de meest ideale weg om te bewandelen. Dat is een project met de grootte die niemand meer begrijpt, iedereen is daarbij specialist in z'n eigen deelgebiedje.
Neem eens een veel kleiner project, zoek eens op sourceforge ofzo
 
Ik heb kdenetwork-3.5.5 gedownload en daarin kopete bekeken, daar heb je ook zoveel include. Met amarok ook. Zijn die projecten ook te groot?

Naar main zoeken lukt niet echt, als er dan iets instaat als:

mainwindow

ofzoiets, dan staat dat er ook allemaal bij, heel veel resultaten dus.

(als er iemand een goed project heeft, zeg het maar, liefst 1 die Qt gebruikt, GTK+ is me te ingewikkeld :D)
 
Laatst bewerkt:
Als ik jou was zou ik eens een kijkje nemen bij wxWidgets en z'n tutorials:
http://www.wxwidgets.org/docs/tutorials.htm

Dat is, net als Qt en GTK, een cross-platform C++ framework. Ik vind het zelf heel helder en duidelijk, volg de tutorials eens.
De programma's die je tot nu toe bekeken hebt zijn of cross-platform of linux programma's. Zelfs al zou je daar uit komen dan heb je nog niets geleerd over de windows api (ervan uitgaande dat je onder windows wilt programmeren).
 
Ik gebruik Linux en wil onder Linux programmeren, vandaar dat ik Linux programma's bekijk.

Als ik zelf programmeer wil ik niet afhankelijk zijn van een ander programma zoals dat framework of KDE ofzo.

Kopete en Amarok hebben ook zoveel includes, zijn die projecten ook te groot?

Naar main zoeken lukt niet echt, als er dan iets instaat als:

mainwindow

ofzoiets, dan staat dat er ook allemaal bij, heel veel resultaten dus.

(als er iemand een goed project heeft, zeg het maar, liefst 1 die Qt gebruikt, GTK+ is me te ingewikkeld :D)
 
Laatst bewerkt:
(als er iemand een goed project heeft, zeg het maar, liefst 1 die Qt gebruikt, GTK+ is me te ingewikkeld :D)

Dus je wilt geen framework als wxWidgets gebruiken, maar wel Qt?? Het verschil ontgaat me nogal.
Er zijn trouwens vast wel goede tutorials te vinden ergens op het net waar uitgelegd wordt hoe je een programma voor linux (console of X programma, wat wil je eigenlijk) in C++ schrijft
 
wxWidgets gebruikt GTK+, als je de source wil downloaden staat er een naam:

wxGTK

Overigens denk ik niet dat wxWidgets automatisch is geïnstalleerd op systemen (Qt is op vrij veel systemen standaard geïnstalleerd op KDE te draaien, hetzelfde geldt voor GTK+, maar dan om Gnome te draaien). Op mijn systeem is het niet zo en als ik zoek via Yast krijg ik dit:

wxGTK-compat - wxWidgets Compatibility Package

wxWidgets is a free C++ framework to make cross-platform programming easy. It supports Windows 3.1/95/98/NT, and UNIX with GTK/Motif/Lesstif. This is the version for GTK+. This package only contains the runtime libraries and other data needed by the runtime libraries.
This package contains a library compiled without Unicode support, which is needed for some improperly written applications.

en

perl-Alien-wxWidgets - Build, find and use wxWidgets binaries

Alien::wxWidgets can be used to detect and get configuration settings from an installed wxWidgets.
Please see http://search.cpan.org/perldoc?Alien for the manifesto of the Alien namespace.

en meer niet. En in de 1e zie je dat het GTK+ gebruikt.

1) Programma's lezen zoals kopete en amarok, zijn die projecten ook te groot om deftig te kunnen lezen?
2) Welke programma's lees ik dan best om wat C++ kennis te verrijken (dmv "live" voorbeelden)?
 
Laatst bewerkt:
lees voor #include <> een lap een code die in dat bestand staat. feitelijk zijn jouw meerdere cpp's en h's niks anders dan handig voor jouw overzicht. achter deschermen mag je het zien als 1 grote cpp. Meeste includes zijn inderdaad welbekend, andere neit

een verschil
# include <windows.h> met <> geeft aan dat het 'native' is
# include "windows.h" met "" geeft aan dat jij je eigen windows.h hebt geschreven

dus alles met <> is 'achter de schermen' en hoef je je niet druk om te maken.
en alles met "" kun je vinden in het project

daarna is het uitzoeken welke include wat doet.
comment er 1 uit, compile, en zie waar het errors geeft. zo kun je uit vinden waarom de includes erin zitten en waar ze effect hebben

maar, iets ander, je zegt dat je c++ wilt gaan leren.... zou je dan wel meteen met de firefox opensource beginnen????
dat is wel vrij intens, en daarnaast zeer specifiek op browser gebeuren.
Ik denk dat je er meer aan hebt om gewoon tutorials op te gaan zoeken.

Daarnaast, er is maar 1 manier om het te leren en dat is het doen. je zult een relatie moeten opbouwen met je debugger, anders ben je kansloos.
 
Ik probeer ook zelf dingen, maar ik vind het leuk/interessant om te kijken hoe andere sommige dingen doen. Daar kan je namelijk ook wat uit leren. Dus:

1) Programma's lezen zoals kopete en amarok, zijn die projecten ook te groot om deftig te kunnen lezen?
2) Welke programma's lees ik dan best om wat C++ kennis te verrijken (dmv "live" voorbeelden) (liefst Linux programma's die Qt gebruiken)?
 
die titels zeggen me niks, maar over het algemeen zijn source codes van grote officiele projecten behoorlijk complex....
Ik zou zeggen, zoek een doel, ff een klein dingetje programeren, en dan een tutorial daarvan.
Verder is msdn is DE reference site, maar vrij technisch.
en verders, tja, als je die sources kan volgen, das dan helemaal ok, maar als het abracadabra voor je is, moet je daar niet teneergelagen van raken....
 
msdn = Microsoft = Windows programma's = Windows code != Linux programma's != Linux codes

Dus msdn is niet de geschikte plaats denk ik. Op sourceforge, tja, welke projecten zijn groot en welke niet? Wanneer is een project groot en officieel? En wanneer is het nog volledig leesbaar voor een normaal iemand?
 
Welke dingen raad je aan om met te beginnen? Ik heb niet zo meteen iets in m'n hoofd waarnaar ik moet zoeken. Moet ik op Musicplayer zoeken, of een simpelder project?
 
ik ben bijna klaar met een klein programma, kan je dat eens lezen als het klaar is , om te zien of je weet wat het doet :P
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan