Archief - C++

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Da Turtle

Legacy Member
en pointers zijn inderdaad moeilijk int begin. Als je geen ervaring hebt me programmeren is da moeilijk te begrijpen, ma der is niemand die zegt da je nie eerst een eindje kan programmeren zonder pointers voor je dermee begint.

iterums

Legacy Member
S3cT0r zei:
Killgore heeft gelijk.

En da van: Als beginner C++ leren kan niet enz, blabla memory blabla.
Dat hangt natuurlijk af van je vertandelijke capaciteiten...

En aan de threadstarter, probeer eens C, das pas een straightforward taal.
(C++ is een superset van C met allemaal object oriented brol die ge voor niets nodig hebt).
ik zou toch eerder direct beginnen met c++ aangezien je dan niet dingen moet afleren als je evt met c++ zou beginnen en wat is er mis met OO?

Reck

Legacy Member
iTeRuMs zei:
ik zou toch eerder direct beginnen met c++ aangezien je dan niet dingen moet afleren als je evt met c++ zou beginnen en wat is er mis met OO?
seconded :)

trouwens cout > printf() :p

S3cT0r

Legacy Member
MOET afleren? Dat dacht ik niet, er is helemaal niets mis met structured programming.
En waar haal je die cout > printf() in godsnaam vandaan? cout is gewoon een veredelde vorm van printf met overloaded operatoren, ik vind persoonlijk dat het lelijker is dan printf() ma swat.

Reck

Legacy Member
S3cT0r zei:
En waar haal je die cout > printf() in godsnaam vandaan? cout is gewoon een veredelde vorm van printf met overloaded operatoren, ik vind persoonlijk dat het lelijker is dan printf() ma swat.
het feit dat er een :p smiley staat, kan mss betekenen dat je het allemaal niet zo serieus moet opvatte :)

de jerre

Legacy Member
Ik heb onlangs visual studio weten te bemachtigen en daar zit zowat alles in wat microsoft heeft uitgebracht om te programmeren. nu vraag ik me af of visual c++ 6.0 dezelfde codes enzo gebruikt als gewone c++ of je er hetzelfde mee kunt doen, enz...

is dit zo ? of is dit een vereenvoudigde versie van c++ (of iets anders) ?

Tyfius

Legacy Member
visual c++ heeft een paar extra functies (maar de kans da ge die in ne gewone c++ boek tegenkomt is klein) en dat is 't zowa. Niks om u druk over te maken :)

wlibaers

Legacy Member
Hellsgamerz zei:
Waarom wil iedereen hier toch C++ leren? Je zal NOOIT alleen een engine schrijven, en dat is de dag van vandaag de énige reden waarom je nog C++ zou leren. Voor al de rest zijn er talen die veel meer geschikt zijn.

Ik zit in Toegepaste informatica, een richting die mij een job als programmeur kan bezorgen. Wij zien géén C++. Enkel de mensen van Electronica-ict zien dat, maar die zien ook assembler (als ik mij niet vergis), omdat die op machineniveau gaan werken.

C++ is trouwens te moeilijk voor een beginner, punt. Je kan niet leren dénken als een programmeur als je nog je eigen geheugenbeheer ed moet doen.

Wat is er mis met assembly? OK, het gebruiken zullen de meeste programmeurs zelden of nooit, maar de kennis over de werking van de machine kan wel nuttig zijn, o.a. om pointers beter te begrijpen.

Op C++ kan je wel de terechte kritiek hebben dat het maar een bijeengesmeten hoopje features is. Voor de OO-delen van C++ zijn de low-level mogelijkheden doorgaans niet echt nuttig en omgekeerd. Sommigen vinden dan ook dat de meeste C++ programma's beter als een combinatie van low-level delen in C met high-level delen in een scriptingtaal zouden gemaakt worden. C++ heeft het voordeel dat je alles in een pakket krijgt, maar het is dan ook een heel complex pakket.

Hellsgamerz

Legacy Member
C is very efficient, and very sparing of your machine's resources. Unfortunately, C gets that efficiency by requiring you to do a lot of low-level management of resources (like memory) by hand. All that low-level code is complex and bug-prone, and will soak up huge amounts of your time on debugging. With today's machines as powerful as they are, this is usually a bad tradeoff — it's smarter to use a language that uses the machine's time less efficiently, but your time much more efficiently. Thus, Python.

Quote Eric S. Raymond, 'how to become a hacker', waar DJeez zeker van gehoord heeft :D

Meer valt er niet te zeggen. C (en C++) levert je grote efficientie op, maar enorme debug- en devtijd.

Killgore: Carmack is niet aan zijn proefstuk toe. Zie ook: GAME-ENGINE en TEAM. Wie hier zit in zo'n situatie? Niemand. Wie hier programmeert C++? Een paar mensen. Wie heeft het nodig? Niemand. Zo simpel is het. C++ is overdreven. Het is terecht populair, maar enkel voor zeer goed omschreven taken. Voor de rest dev je half zo lang en neem je die paar Kb erbij die de memorymanager inneemt.

Programmeren in een taal als je die niet nodig hebt is dom, gewoon dom. Wie gebruikt een zaag om een spijker in de muur te drijven? Zelfde principe. Ga na welke taal je best kan gebruiken, en pas je daar aan aan. Je kan niet 1 taal leren om ALLES te doen (met C++ prolly wél, maar de tradeoff is veel te hoog om werkbaar te zijn)

Om de ts eens goed te helpen: ik raad Python aan. Gratis, goed, en veel resources. In uw geval zelfs de beste functie: je kan C(++)-code in Python gebruiken. Maak een programma in Python, heel basic (directory lister ofzo). Kijk naar de tijd nodig om te maken en uit te voeren, geheugenruimte ed... Ga dan de Pythoncode systematisch vervangen door C++. Doe hetzelfde. De resultaten zijn onmiddelijk te voorspellen: langere duur in C++, maar iets efficienter. Python haalt grotendeels dezelfde efficientie als C++ trouwens.

Terug ontopic: als je toch wilt leren, neem een simpel boek dat je ook de basis van programmeren bijbrengt. Je leert toch maar door te doen. Later kan je, als je meer geavanceerde dingen wil doen (eenmaal je de basis begrijpt) nog een soort naslagwerk kopen.

edit: niets mis met assembler, maar compleet overbodig tenzij je op machineniveau gaat zitten, en dat vraagt sowieso OF een opleiding OF enorm grote wilskracht om zoiets te doen.

de jerre

Legacy Member
Tyfius zei:
visual c++ heeft een paar extra functies (maar de kans da ge die in ne gewone c++ boek tegenkomt is klein) en dat is 't zowa. Niks om u druk over te maken :)
geen probleem als ik via dat c++ leer dus

killgore

Legacy Member
de jerre zei:
geen probleem als ik via dat c++ leer dus
nop, enkel ga je in de 6 wat probs krijgen met vars lifetime, maar de kans dat je die echt tegenkomt is klein (en nog kleiner dat je herkent dat ze niet ansi/iso zijn ;)).

Cakeman

Legacy Member
Tyfius zei:
ni da ik moeilijk wil doen, maar c++ heeft zeer veel voordelen. Hoeveel engines kunt gij opnoemen die in Java geschreven zijn ?
Python is een oude taal, ter hoogte van C, Delphi en Pascal daar blijfde al helemaal af.
Als ge echt state of the art cross platform wilt gaan coden, gaat ge da doen in C# in combinatie met GTK# voor uw UI.
Da's net zoals Java een JIT taal, maar java = traag, groot en swing is lelijk...
Toch even zeggen dat Delphi echt wel een goede taal is. Ik snap niet waarom iedereen daar zo negatief over doet.

Reck

Legacy Member
killgore zei:
nop, enkel ga je in de 6 wat probs krijgen met vars lifetime, maar de kans dat je die echt tegenkomt is klein (en nog kleiner dat je herkent dat ze niet ansi/iso zijn ;)).
zet gewoon de for-loops tusen haakjes

ipv van
Code:
for(;;)
{
}
doe je
Code:
{for(;;)
{
}}

Reck

Legacy Member
killgore zei:
nop, enkel ga je in de 6 wat probs krijgen met vars lifetime, maar de kans dat je die echt tegenkomt is klein (en nog kleiner dat je herkent dat ze niet ansi/iso zijn ;)).
zet gewoon de for-loops tusen haakjes

ipv van
Code:
for(int;;)
{
}
doe je
Code:
{for(int;;)
{
}}

killgore

Legacy Member
Reck zei:
zet gewoon de for-loops tusen haakjes

ipv van
Code:
for(int;;)
{
}
doe je
Code:
{for(int;;)
{
}}

Op die duide ik idd, ma niet ansi blijft niet ansi he :p. Ik gebruik wel al den 7 ondertussen en daar is die mini bug eruit ;).

wlibaers

Legacy Member
Hellsgamerz zei:
Om de ts eens goed te helpen: ik raad Python aan. Gratis, goed, en veel resources. In uw geval zelfs de beste functie: je kan C(++)-code in Python gebruiken. Maak een programma in Python, heel basic (directory lister ofzo). Kijk naar de tijd nodig om te maken en uit te voeren, geheugenruimte ed... Ga dan de Pythoncode systematisch vervangen door C++. Doe hetzelfde. De resultaten zijn onmiddelijk te voorspellen: langere duur in C++, maar iets efficienter. Python haalt grotendeels dezelfde efficientie als C++ trouwens.

Hangt ervan af wat je doet. In een spel (en dat is toch waarover we het op dit forum doorgaans hebben) dat vooral van de grafische kaart afhangt zal het verschil niet veel uitmaken, maar als je met wat complexe berekeningen begint (zoals AI in een complexe of grote wereld, zelfs pathfinding) zou het toch problemen kunnen opleveren. Standaard Python is nog steeds niet echt snel vergeleken met gecompileerde talen.

Een voorbeeld van een high-level taal met zeer snelle implementaties zou Lisp zijn, wat gezien meerdere decennia van ervaring in het optimaliseren van die taal ook niet echt hoeft te verbazen. De taal is wel niet echt populair (nogal uitgebreid, en gebrekkige standaarden voor "moderne" dingen als GUI's maken het niet echt een evidente keuze voor een nieuw project).

edit: niets mis met assembler, maar compleet overbodig tenzij je op machineniveau gaat zitten, en dat vraagt sowieso OF een opleiding OF enorm grote wilskracht om zoiets te doen.

Op de hoogte zijn van assembly kan wel heel nuttig zijn voor wie in low-level talen werkt (delen van C en C++) en ook wil weten wat er nu eigenlijk achter de schermen gebeurt. Zeker als je ook de prestaties wil optimaliseren. Natuurlijk is dit niet meteen een zorg voor beginners.

Unzip Attack

Legacy Member
mmm ik denk dat je er ietsje te licht overgaat...een programmeertaal leren is niet zoals frans of engels leren, dat gaat veel meer in stapjes (analogie met wiskunde leren). Je kan niet integralen leren als je nog niet kan tellen tot 10...
Anyway nét hetzelfde met C++ , je kan onmogelijk C++ vollédig snappen als je geen voorkennis hebt... bij mij ist gegaan van standaard programmeerbeginselen in Java (array, lussen maar ook dingen als recursie) > uitbreiding in C (pointers, backtracking, ...) > C++ (OO proggen, inheritance, classes, constructors, overloading,...)

om uiteindelijk dingen over te brengen naar een andere taal is een koud kunstje, maar dingen écht effectief kunnen gebruiken wanneer ze nodig zijn (analogie met een bewijs leren en een bewijs zélf kunnen maken) is moeilijker...

Vich

Legacy Member
Dit soort posts zijn altijd leuk :9

Hellsgamerz zei:
Waarom wil iedereen hier toch C++ leren? Je zal NOOIT alleen een engine schrijven,
www.alternova.be
Wel dus. Maar ik wil hier wel even bijzeggen dat ik mensen zeker afraad een eigen engine te schrijven, tenzij ze daar een hele goede reden voor hebben!

en dat is de dag van vandaag de énige reden waarom je nog C++ zou leren. Voor al de rest zijn er talen die veel meer geschikt zijn.
C++ enkel voor games? Ik dacht het niet!

Ik zit in Toegepaste informatica, een richting die mij een job als programmeur kan bezorgen. Wij zien géén C++. Enkel de mensen van Electronica-ict zien dat, maar die zien ook assembler (als ik mij niet vergis), omdat die op machineniveau gaan werken.
Ik heb ook TI gevolgd. We zagen in het eerste jaar Cobol en Oberon, dát zijn pas programmeertalen :lol: (maar niet heus). Met Cobol kan je hooguit bij een bank terecht later.
Dat is ook een van de reden dat ik die richting niet voltooid heb (en uiteindelijk geen enkele andere richting, maar toch heb ik werk in de games industrie).

C++ is trouwens te moeilijk voor een beginner, punt. Je kan niet leren dénken als een programmeur als je nog je eigen geheugenbeheer ed moet doen.
Er is geen enkele programmeertaal te moeilijk voor een beginner. 't Hangt volledig van de kunde (of onkunde) van de leraar af en van de wil van de student(zelfstudie en dergelijke). En dat is ook vaak het knelpunt op een school: de docent.


Hellsgamerz zei:
Wie heeft het nodig? Niemand.
Als ik geen C++ had, dan had ik geen job ;)

Er is geen programmeertaal die slecht is en ook geen die goed is. Elke programmeertaal (ja élke) heeft zijn doel. Assembler heeft dat, Visual Basic heeft dat, Cobol heeft dat en C++ heeft dat ook.

Programmeren in een taal als je die niet nodig hebt is dom, gewoon dom.
Als je een programmeertaal leert die alle technieken omvat die je ooit kan tegenkomen in je programmeer-carriere, dan is het te overwegen om juist die taal te leren, want van zodra je 1 taal kent is het een fluitje van een cent om over te stappen naar andere talen. Je kiest dan vanzelfsprekend best voor een meer volwassen taal.
Voorbeeldje: de overstap van C++ naar VB is makkelijk, maar omgekeerd is dat niet zo eenvoudig.


En over assembler: assembler wordt meestal gebruikt om:
- embedded applicaties te maken (there is usually no other way)
- optimalisaties te doen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan