Thread: C++ leren vanuit voorkennis Java
-
14-06-2011, 11:44 #1Approved 9liver
- Registered
- 21/12/04
- Location
- Leuven
- Posts
- 20,380
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/227
C++ leren vanuit voorkennis Java
Ik krijg de kans als student om mee te werken aan een project, maar het programmeren hiervoor gebeurt in C++. Ik heb zoals velen wel een standaardvak dat Java gebruikt wel gehad. Zijn er veel belangrijke verschillen tussen beide talen wat structuren betreft? Hoe pak ik de overstap het beste aan?
Physics is like sex: Sure, it may have practical results, but that is not the reason we do it. ~ R. Feynman
All science is either physics or stamp collecting. ~ E. Rutherford
S'il est vrai qu'on construit des cathédrales aujourd'hui dans la Science, il est bien dommage que les gens n'y puissent entrer, ne puissent pas toucher les pierres elles-mêmes.
no votes
-
-
14-06-2011, 12:56 #2Approved 9-lifer
- Registered
- 30/09/02
- Location
- Kasterlee
- Posts
- 6,160
- iTrader
- 11 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/25
De grootste verschillen zijn de expliciete memory management en pointers in het algemeen. Maar dat zijn ook wel net de moeilijkste aspecten van de taal
.
C++ is toch nog van een heel ander kaliber om goed onder de knie te krijgen omwille van zijn meer low level karakter. Ge kunt dat dan ook best grondig bijstuderen.
Hier wat meer informatie: Comparison of Java and C++ - Wikipedia, the free encyclopediaPSN: Daedieno votes
-
14-06-2011, 13:12 #3Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
Mja, idd, wat hierboven gezegd wordt. Het is wel doenbaar hoor, maar je zal toch je denkwijze iets moeten aanpassen tegenover Java.
Memory management: alles wat je dynamisch aanmaakt moet je expliciet verwijderen. Java doet dit in jouw plaats, maar C++ niet. Het komt er grofweg op neer dat je voor elk object waarbij je "new" hebt gedaan, dat je als je het niet meer nodig hebt "delete" moet doen.
En pointers, dat gebeurt in Java ook vanzelf. Een pointer is iets - ter grootte van een integer ofzo - dat wijst naar een andere geheugenplaats. Dat kan een object zijn of een andere pointer, eender wat. Zie het als een soort van shortcut. Je kan hiermee krachtige constructies maken
o/'no votes
-
14-06-2011, 13:38 #4
Wat ook nieuw is, is het scheiden van je code in een header (*.h of *.hpp) en een code file (*.cpp). Verder moet je enkel nog rekening houden met include guards alla Include guard - Wikipedia, the free encyclopedia
Geen vereiste, maar good practice.no votes
-
14-06-2011, 14:21 #5Approved 9liver
- Registered
- 21/12/04
- Location
- Leuven
- Posts
- 20,380
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/227
Raden jullie een boek aan om te beginnen of gewoon online tutorials?
Ik denk aan een boek als: C++ for mathematicians : an introduction for students and professionals. van Chapman en Hall. Het is voor dataverwerking van een experiment, dus het zullen vooral bewerkingen en fits zijn die geprogrammeerd moeten worden. Iemand ervaring met dit boek?
De andere optie is C++ zelf eerst leren en dan bijkomende dingen zelf opzoeken tijdens het programmeren.Last edited by Exorikos; 14-06-2011 at 15:01.
Physics is like sex: Sure, it may have practical results, but that is not the reason we do it. ~ R. Feynman
All science is either physics or stamp collecting. ~ E. Rutherford
S'il est vrai qu'on construit des cathédrales aujourd'hui dans la Science, il est bien dommage que les gens n'y puissent entrer, ne puissent pas toucher les pierres elles-mêmes.
no votes
-
14-06-2011, 15:07 #6Approved 9-lifer
- Registered
- 30/09/02
- Location
- Kasterlee
- Posts
- 6,160
- iTrader
- 11 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/25
Hangt af van de scope van het project en uw vertrouwen in uw programmeervaardigheden en intelligentie
.
Als die dingen goed meevallen denk ik dat ge u wel kunt behelpen met (goede) online referenties om bij te leren.
Als ge sowieso plannen hebt om u uitgebreid te verdiepen in C++ is een boek natuurlijk wel aan te raden.
edit: ik kom zelf wel van de andere richting, eerst C dan C++ en dan pas Java. Dus kan zijn dat ik het wat onderschat.Last edited by Daedie; 14-06-2011 at 15:14.
PSN: Daedieno votes
-
14-06-2011, 16:07 #7Approved 9-lifer
- Registered
- 27/08/04
- Location
- Leuven
- Posts
- 930
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 11/38
Je vindt soms specifieke tutorials (of boeken? dat weet ik niet precies) voor een introductie van C++ als je al Java kennis hebt. Dan wordt er vrij vlug over de delen die analoog zijn met Java gegaan en vooral ingegaan op de verschillen.
c++ for java programmers - Google zoeken
c++ for java developers - Google zoeken
Je zal toch echt wat moeten bijstuderen aan het pointer/memory gedeelte. In het begin zal je dus achterop lopen bij diegenen die al ervaring hebben in C++.I am thee and thou art me and all of one is the other.
TED talk: Richard Dawkins on militant atheismno votes
-
14-06-2011, 18:38 #8Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Pointers e.d. zijn overigens allemaal niet zo moeilijk. Iedereen doet daar nogal fuzzy maar eigenlijk stelt dat allemaal niet zoveel voor. De syntax echter is een stuk uitgebreider en dat is volgens mij het grootste struikelblok. Compiler errors zijn ook niet altijd even duidelijk waardoor je wel eens naast het probleem zit te kijken.
“In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
PSN: Cycloon - Final Fantasy XIV: A realm reborn characterno votes
-
20-06-2011, 14:20 #9Approved 9liver
- Registered
- 18/06/11
- Location
- Lo-Reninge
- Posts
- 249
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/1
Pointers kunnen wel tricky worden hoor, maar eens je ermee weg bent is het wel te doen.

Als je eens zoekt op het internet moet je es de '101 rules' van Sutter bekijken. Eens je wat weg bent met C++ kan dit boek je op weg helpen om clean en fast code te schrijven. Het is erg belangrijk in C++ dat je je aan enkele regels houdt en vooral een consequent en efficiënt gedrag vertoont in het programmeren.
C++ kan al snel erg ingewikkeld worden, maar je moet absoluut niet bang zijn om er aan te beginnen. Gewoon erg veel programmeren, van kleine programma's tot heuse games. Werk object-georiënteerd zoals ik hier ook al gelezen heb, gebruik de STL (Standard Template Library) en leer wat advanced stuff om je code sneller te maken
Als je vragen hebt, mag je altijd mailen ofzo!
no votes
-
20-06-2011, 14:42 #10Approved 9liver
- Registered
- 21/12/04
- Location
- Leuven
- Posts
- 20,380
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/227
Bedankt voor de tips. Als de opdracht concreet wordt (het experiment moet eerst nog slagen) dan zal ik hier vast en zeker met vragen komen, maar nu zal ik hopelijk al een goed eind komen.
Physics is like sex: Sure, it may have practical results, but that is not the reason we do it. ~ R. Feynman
All science is either physics or stamp collecting. ~ E. Rutherford
S'il est vrai qu'on construit des cathédrales aujourd'hui dans la Science, il est bien dommage que les gens n'y puissent entrer, ne puissent pas toucher les pierres elles-mêmes.
no votes
-
20-06-2011, 20:03 #11Member
- Registered
- 17/07/02
- Location
- Wilrijk
- Posts
- 1,994
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 9/16
Wat voor een project is het eigenlijk dat ge C++ nodig hebt ?
Tegenwoordig worden der ook snelle dingen gedaan in functional languages vb Call of Duty MP servers zijn van C++ naar Erlang herschreven (vooral thread-heavy dingen)
Erlang and First-Person Shootersno votes
-
20-06-2011, 21:24 #12Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Mja, wat een vergelijking. Een super-multi-core omgeving met very high concurrency en massa's netwerkverkeer die op elk moment kan wegvallen. Zonder de nodige ondersteuning van de gebruikte technologie geraak je daar nooit.
Maar hier gaat het duidelijk over iemand die wil beginnen programmeren. Dan kan je gerust het wiel nog eens opnieuw uitvinden
“In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
PSN: Cycloon - Final Fantasy XIV: A realm reborn characterno votes
-
20-06-2011, 21:29 #13Approved 9-lifer
- Registered
- 27/08/04
- Location
- Leuven
- Posts
- 930
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 11/38
I am thee and thou art me and all of one is the other.
TED talk: Richard Dawkins on militant atheismno votes
-
20-06-2011, 21:43 #14Member
- Registered
- 24/09/10
- Location
- Regio Brussel
- Posts
- 642
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/35
Zijn er eigenlijk veel verschillen met C++ en C? Kbedoel, is het ene moeilijker dan het andere of is da gewoon vergelijkbaar qua moeilijkheid?
no votes
-
20-06-2011, 23:02 #15Member
- Registered
- 06/04/06
- Location
- BXL
- Posts
- 4,415
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/40
C is simpeler (maar daarom niet eenvoudiger) omdat het een veel kleinere taal is. C++ is geconcipieerd als een superset van C, dat wil zeggen dat het dingen toevoegt aan C, waardoor het heel wat complexer is. Complexer wil daarom niet zeggen moeilijker: omdat C++ nieuwe constructies introduceert zijn veel problemen makkelijker/korter op te lossen dan in gewoon C. Ge betaalt wel een prijs voor die complexiteit: het wordt makkelijker om dingen over het hoofd te zien, en sommige dingen zijn moeilijker te begrijpen.
I caught a glimpse and now it haunts me.no votes

