Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [C++] Gebruik van functies... (https://forum.scholieren.com/showthread.php?t=1005352)

Kawoutertje 06-11-2004 01:10

[c++] gebruik van functies...
 
Voor het vak C++ op onze school moeten we een taak maken waarbij we meerdere functies moeten gebruiken. Nu heb ik een probleem, dat mijn docent niet wil uitleggen "omdat hij er binnen enkele lessen op terug komt", en ik vind het ook niet zo direct in mijn cursustekst. Het probleem is namelijk het volgende:

Ik heb een functie main(), en twee functies functieA() en functieB() die worden opgeroepen vanuit de main-functie. Bij het compileren krijg ik een error (call to undefined function functieA(), ...) omdat mijn main-functie in de programmatekst staat geschreven voor/ boven de functieA() en functieB(). Wanneer ik de main-functie onder de functieA() en functieB() zet, is het probleem echter opgelost.

Kan iemand mij misschien vertellen hoe dit komt, en hoe ik dit kan oplossen, want om eerlijk te zijn geloof ik niet dat de volgorde waarin de functies staan in een hogere programmeertaal als C++ een probleem kan geven....

thx

Manuzhai 06-11-2004 08:33

Je moet boven je main() een functie-signature geven. Dus bijv.

Code:

int functieA(int flappie, char[] crap);
int functieB(int[] dingen, char letter);

int main() {


}

int functieA(int flappie, char[] crap) {


}

...


Fade of Light 06-11-2004 09:49

En als je geen resultaat terug wil krijgen, gebruik je void in plaats van int. althans ik geloof niet dat weglaten goedgekeurd wordt, wel in andere programmeerta(a)l(en).

Raven 06-11-2004 11:15

Citaat:

Fade of Light schreef op 06-11-2004 @ 10:49 :
En als je geen resultaat terug wil krijgen, gebruik je void in plaats van int. althans ik geloof niet dat weglaten goedgekeurd wordt, wel in andere programmeerta(a)l(en).
dat komt omdat C++ geen procedures kent C++ kent alleen functies.

void gebruik je maar heel soms omdat je met een int wel handig kan testen of het ook allemaal gelukt is wat je probeerde.

dan kan je bv dit doen
Code:

if (openfile("myfile.bin") )
  {
    // openen gelukt
  }
else
    {
    // openen mislukt
    MessageBox(handle,"File kan niet geopend worden",application_name,MB_ICONEXCLAMATION || MB_OK);
    }


Kawoutertje 06-11-2004 11:57

Het komt er eigenlijk gewoon op neer dat je je functie moet declareren als het ware, voor je ze oproept in de main-functie, zodat de main-functie weet dat die functie bestaat en zodat de main-functie dan in de rest van de programmatekst naar die functie gaat zoeken?

Klopt dit of sla ik de bal er kompleet naast?

En is er een bepaalde reden dat dit in C++ zo moet en bijvoorbeeld in java niet ? In java kan je namelijk gewoon een andere functie programmeren en die functie in een bovenstaande functie oproepen zonder die vooraf te declareren of zo...

Raven 06-11-2004 12:08

Citaat:

Kawoutertje schreef op 06-11-2004 @ 12:57 :
Het komt er eigenlijk gewoon op neer dat je je functie moet declareren als het ware, voor je ze oproept in de main-functie, zodat de main-functie weet dat die functie bestaat en zodat de main-functie dan in de rest van de programmatekst naar die functie gaat zoeken?

Klopt dit of sla ik de bal er kompleet naast?

En is er een bepaalde reden dat dit in C++ zo moet en bijvoorbeeld in java niet ? In java kan je namelijk gewoon een andere functie programmeren en die functie in een bovenstaande functie oproepen zonder die vooraf te declareren of zo...

les 1 : JAVA ZUIGT, het is traag, alles MOET in een object zitten (da's idioot).
On the fly garbage collector, alsof je te stom bent om dat zelf te doen . bovendien je weer nooit zeker waneer dat ding aan de gang gaat.

java is stiekum helemaal geen compiler maar een interpreter die regel voor regel vertaalt en uitvoert ( lees GW_BASIC)
het draait op elke computer?, gebleer ! basic draait op die manier ook op elke PC ( op elke computer draait het zoieso niet)

C++ daarentegen kan voor elke computer (microprocessor) gecompileert worden en levert zeer efficiente code.


in java declareer je alles ook van te voren want alles zit in een object. en wat in een object zit is eigenlijk al gedeclareert.

eddie 06-11-2004 12:22

Citaat:

Raven schreef op 06-11-2004 @ 13:08 :
les 1 : JAVA ZUIGT, het is traag, alles MOET in een object zitten (da's idioot).
On the fly garbage collector, alsof je te stom bent om dat zelf te doen . bovendien je weer nooit zeker waneer dat ding aan de gang gaat.

java is stiekum helemaal geen compiler maar een interpreter die regel voor regel vertaalt en uitvoert ( lees GW_BASIC)
het draait op elke computer?, gebleer ! basic draait op die manier ook op elke PC ( op elke computer draait het zoieso niet)

C++ daarentegen kan voor elke computer (microprocessor) gecompileert worden en levert zeer efficiente code.

in java declareer je alles ook van te voren want alles zit in een object. en wat in een object zit is eigenlijk al gedeclareert.

Houdt die rust! Zo erg is java helemaal niet (meer).

Zeker niet na het uikomen van Java 5.0; het is een stuk sneller geworden. Dat alles in objecten 'zit' heeft ook zijn voordelen; zo kun je het object dus subclassen en er eigen methods aan toevoegen. Het is toch briljant dat bijna ieder datatype een .toString() method heeft?

Die garbage collector is er alleen voor om op te ruimen wat jij bent vergeten; dat het alles opruimt omdat 'de garbage collector het wel doet' is uiteraard slecht, maar ja... mensen zijn lui.

Java compileert on-the-fly het (gehele) programma (dus eenmalig) en voert de gecompileerde versie uit. Dit kost even tijd, maar dan draait het ook gewoon - en heus niet langzamer dan een C/C++ programma.

Een java programma draait op elke pc/computer dat een Java Virtual Machine kan draaien, ongeacht de hardware, het besturingssyteem etc, zonder het programma aan te passen. Ik zie jou nog niet zo 'even' in C/C++ een BitTorrent client maken (zie Azureus) die op elk platform draait zonder de source code te veranderen...

Raven 06-11-2004 12:33

Citaat:

eddie schreef op 06-11-2004 @ 13:22 :
Houdt die rust! Zo erg is java helemaal niet (meer).

Zeker niet na het uikomen van Java 5.0; het is een stuk sneller geworden. Dat alles in objecten 'zit' heeft ook zijn voordelen; zo kun je het object dus subclassen en er eigen methods aan toevoegen. Het is toch briljant dat bijna ieder datatype een .toString() method heeft?

Die garbage collector is er alleen voor om op te ruimen wat jij bent vergeten; dat het alles opruimt omdat 'de garbage collector het wel doet' is uiteraard slecht, maar ja... mensen zijn lui.

Java compileert on-the-fly het (gehele) programma (dus eenmalig) en voert de gecompileerde versie uit. Dit kost even tijd, maar dan draait het ook gewoon - en heus niet langzamer dan een C/C++ programma.

Een java programma draait op elke pc/computer dat een Java Virtual Machine kan draaien, ongeacht de hardware, het besturingssyteem etc, zonder het programma aan te passen. Ik zie jou nog niet zo 'even' in C/C++ een BitTorrent client maken (zie Azureus) die op elk platform draait zonder de source code te veranderen...

java "compileert" naar zogehete P code die door de virtual machine(da's een interpreter) wordt uitgevoert

java programma's zijn wel degelijk (veel) trager dan C++ programma's

iets als halflife ga je echt niet in java schrijven.

bij ons op school leerden wij bv een "handig" breuken object in java
met als resultaat dat je voor elke berekening een nieuw object moet maken ( dan heb je toch een gaatje in he hoofd ??)

in c++ kan je zelfs dit schrijven:
Code:

TBreuk:b1,b2,b3;
b1.set("1/2");
b2.set("1/4");
b3=b1+b2;

ja ga hier niet m'n hele breuken code neerzetten
maar dit is toch ietsje minder holbewonerstijl dacht ik zo
( die + is hier dus een zelf gedefinieerde operator waar een functie aan hangt)

komt nog bij dat toen ik Symantec Visual cafe op mijn computer zette (onthoud die naam)
en het eens ging proberen (voorbeeld letterlijk uit een boek)
ik eerst een stuk of pak_m_beet 20 nullpointerexeptions kreeg.
waarna de hele computer vast liep.

opnieuw opgestart..
't ding was ineens niet meer vooruit te trappen.
integrity fouten op mijn harde schijf.

ik heb m'n hele harde schijf kunnen formatteren..
en IK HEB DE ROTZOOI NOOIT MEER AANGERAAKT :mad:

als ik eraan terug denk komt er nog stoom uit m'n oren



verder: Ansi C++ kan voor ELKE microprocessor gecompileert worden. dus niet alleen een PC maar ook bv een MRI scanner of een robotje enz enz.

alleen platform afhankelijke code moet je veranderen.
maar die stop je dan in een dll ofzo

eddie 06-11-2004 12:48

Citaat:

Raven schreef op 06-11-2004 @ 13:33 :
java programma's zijn wel degelijk (veel) trager dan C++ programma's

Dat vind jij, en dat was vroeger misschien ook wel zo (met de 'swing' interface :x)
Citaat:

Raven schreef op 06-11-2004 @ 13:33 :

iets als halflife ga je echt niet in java schrijven.

Zoiets niet idd. Maar bijvoorbeeld een routeplanner wel.

Citaat:

Raven schreef op 06-11-2004 @ 13:33 :
bij ons op school leerden wij bv een "handig" breuken object in java
met als resultaat dat je voor elke berekening een nieuw object moet maken ( dan heb je toch een gaatje in he hoofd ??)

in c++ kan je zelfs dit schrijven:
Code:

TBreuk:b1,b2,b3;
b1.set("1/2");
b2.set("1/4");
b3=b1+b2;

ja ga hier niet m'n hele breuken code neerzetten
maar dit is toch ietsje minder holbewonerstijl dacht ik zo
( die + is hier dus een zelf gedefinieerde operator waar een functie aan hangt)

Tja, dit doe je toch echt verkeerd. Mooier/beter/makkelijker zou bijvoorbeeeld zijn:

Code:

b3.sum( b1, b2 );
of
Code:

b3.set( "sum", b1, b2 ); && overloading
(ok, die tweede is een beetje brak)

Citaat:

Raven schreef op 06-11-2004 @ 13:33 :
komt nog bij dat toen ik Symantec Visual cafe op mijn computer zette (onthoud die naam)
en het eens ging proberen (voorbeeld letterlijk uit een boek)
ik eerst een stuk of pak_m_beet 20 nullpointerexeptions kreeg.
waarna de hele computer vast liep.

opnieuw opgestart..
't ding was ineens niet meer vooruit te trappen.
integrity fouten op mijn harde schijf.

ik heb m'n hele harde schijf kunnen formatteren..
en IK HEB DE ROTZOOI NOOIT MEER AANGERAAKT :mad:

Je moet Java niet de schuld geven van jouw slechte programmeerkwaliteiten in de Java taal...

Raven 06-11-2004 13:08

Citaat:

eddie schreef op 06-11-2004 @ 13:48 :
Dat vind jij, en dat was vroeger misschien ook wel zo (met de 'swing' interface :x)

Zoiets niet idd. Maar bijvoorbeeld een routeplanner wel.


Tja, dit doe je toch echt verkeerd. Mooier/beter/makkelijker zou bijvoorbeeeld zijn:

Code:

b3.sum( b1, b2 );
of
Code:

b3.set( "sum", b1, b2 ); && overloading
(ok, die tweede is een beetje brak)

Je moet Java niet de schuld geven van jouw slechte programmeerkwaliteiten in de Java taal...


volgens mij is mijn code een stuk korter en in C++ kan je dat gewoon zo doen . werkt prima ( moet eigenlijk zelfs zo, operator overloading)
en is niet voor nix dat de hele windows API op C++ gebaseert is.
en mijn programmeer kwaliteiten .. ik ken aardig wat programmeer talen en geen enkele vind ik zo'n disaster als java. en ik denk dat ik wel wat van programma's schrijven weet ;)

bovendien 't was een voorbeeld uit een boek .. letterlijk over getikt

Rob 06-11-2004 14:28

Je moet voorwaarts declareren, ja. Ik kan het uileggen, maar het staat er al in de tweede post. ;)

Moet wel bekennen dat ik het nut daarvan niet echt inzie. Kan iemand uitleggen wat het nu is van het voorwaards declareren van functies?

eddie 06-11-2004 14:29

Citaat:

Raven schreef op 06-11-2004 @ 14:08 :
volgens mij is mijn code een stuk korter en in C++ kan je dat gewoon zo doen . werkt prima ( moet eigenlijk zelfs zo, operator overloading)

Ja, in C++ kan het wel zo horen, maar in Java moet je toch richting OO gaan denken, aangezien Java puur OO is.

Citaat:

Raven schreef op 06-11-2004 @ 14:08 :

en is niet voor nix dat de hele windows API op C++ gebaseert is.

Nee, anders gaat MS de concurrent promoten. Trouwens, API's zijn vaak low-level functies, gericht op spelen met geheugen; dit vereist kennis van het platform - dus niks voor java.

Citaat:

Raven schreef op 06-11-2004 @ 14:08 :

en mijn programmeer kwaliteiten .. ik ken aardig wat programmeer talen en geen enkele vind ik zo'n disaster als java. en ik denk dat ik wel wat van programma's schrijven weet ;)

bovendien 't was een voorbeeld uit een boek .. letterlijk over getikt

In plaats van Java de schuld te geven zou je ook het voorbeeld als schuldige kunnen aanwijzen ;)

eddie 06-11-2004 14:30

Citaat:

Rob schreef op 06-11-2004 @ 15:28 :
Moet wel bekennen dat ik het nut daarvan niet echt inzie. Kan iemand uitleggen wat het nu is van het voorwaards declareren van functies?
Dan kan heb je je mian bovenaan staan, wat makkelijk(er) is. Tenminste... vroeger, in het DOS tijdperk met zijn 'geavanceerde' editors.

Alicia Silverstone 06-11-2004 14:58

Citaat:

Raven schreef op 06-11-2004 @ 14:08 :
is niet voor nix dat de hele windows API op C++ gebaseert is.
De Windows API is oorspronkelijk helemaal niet op C++ gebaseerd, maar op C :p

Voor C++ hebben ze expres de MFC klassen om de WinAPI heen gebouwd.

@eddie:
Voor de rest is het logisch dat JAVA qua uitvoering trager is dan C++. Alle gecompileerde programma's die uit IL bestaan zijn trager, aangezien ze eerst moeten worden geinterpreteerd. Het enige wat je daaraan kunt doen is caching, maar dat is alleen handig voor serverside applicaties.

@Rob:
Alle functies bestaan uit een functie declaratie en een functie definitie. Dit is in principe in alle talen zo, alleen dat de declaratie en definitie weleens impliciet ineens wordt gedaan.

Je moet hem gewoon eerst declareren, omdat de caller hem anders niet kent.

Raven 06-11-2004 22:56

Citaat:

Alicia Silverstone schreef op 06-11-2004 @ 15:58 :
De Windows API is oorspronkelijk helemaal niet op C++ gebaseerd, maar op C :p

Voor C++ hebben ze expres de MFC klassen om de WinAPI heen gebouwd.

@eddie:
Voor de rest is het logisch dat JAVA qua uitvoering trager is dan C++. Alle gecompileerde programma's die uit IL bestaan zijn trager, aangezien ze eerst moeten worden geinterpreteerd. Het enige wat je daaraan kunt doen is caching, maar dat is alleen handig voor serverside applicaties.

@Rob:
Alle functies bestaan uit een functie declaratie en een functie definitie. Dit is in principe in alle talen zo, alleen dat de declaratie en definitie weleens impliciet ineens wordt gedaan.

Je moet hem gewoon eerst declareren, omdat de caller hem anders niet kent.

eeh ik gebruik de echte HARDCORE windows API :cool:
geen wrappers.
bovendien maakt C of C++ voor het aanroepen van API functies geen moer uit. alleen in pascal ( delphi) zit je soms te kloten omdat ie een longint als pointer wil (Lparam bv) en dat vind delphi niet leuk .. maar voor alles is een oplossing:
Code:

SendMessage(form2.combobox1.Handle,CB_DIR,DDL_READWRITE or DDL_ARCHIVE,longint(p));
zo pakt delphi het ook :p

Manuzhai 06-11-2004 23:48

********, log eens zelf in als je post. :P

Citaat:

Raven schreef op 06-11-2004 @ 13:08 :
On the fly garbage collector, alsof je te stom bent om dat zelf te doen. bovendien je weer nooit zeker waneer dat ding aan de gang gaat.
Zelfs als mensen niet te stom zijn om dat zelf te doen (zelfs in prestigieuze grote Open Source projecten komen nog memleaks voor omdat het memory management niet goed zit) bespaart het de programmeur enorm veel tijd om zoiets te laten doen door een machine (het is een kwestie van boekhouden, daar zijn machines veel beter in dan mensen).

Raven 07-11-2004 11:20

Citaat:

Manuzhai schreef op 07-11-2004 @ 00:48 :
********, log eens zelf in als je post. :P

Zelfs als mensen niet te stom zijn om dat zelf te doen (zelfs in prestigieuze grote Open Source projecten komen nog memleaks voor omdat het memory management niet goed zit) bespaart het de programmeur enorm veel tijd om zoiets te laten doen door een machine (het is een kwestie van boekhouden, daar zijn machines veel beter in dan mensen).

of je schrijft EEN keer een klasse die dat netjes allemaal voor je regelt ;) en die werkt veel beter dan die garbage collector.
die van mij heeft ook dingen als:

Tmemstruct TList::Occupied_mem();
void TList::Kill_items();
void TList::Kill(TListitem:item);

kan je in je code zetten item.kill();
en als Kill_items(); van zijn containerklasse wordt aangeroepen dan worden alle killed items netjes verwijdert :cool: :p
en met Occupied_mem(); kan je makkelijk controleren of er geen leaks optreden

hmmja en 't is ook .. ik hou gewoon van Good old real coding als je begrijpt wat ik bedoel. ik bepaal graag zelf wat er gebeurt, dan weet ik tenminste zeker dat het goed gaat en zo niet hoef ik me niet af te vragen waar het aan ligt maar ben ik gewoon lekker zelf stom geweest :p

Chimera 07-11-2004 12:24

Sorry, maar deze reactie is te stom voor woorden.

Citaat:

Raven schreef op 06-11-2004 @ 13:08 :
les 1 : JAVA ZUIGT, het is traag, alles MOET in een object zitten (da's idioot).

Goh, misschien komt dat omdat Java een OBJECT ORIENTED programming language is? En kom niet aan dat C++ dat ook is, C++ is precies dat, C pluseenbeetje.

Bovendien is Java gewoon niet traag.

Citaat:

Raven schreef op 06-11-2004 @ 13:08 :

On the fly garbage collector, alsof je te stom bent om dat zelf te doen . bovendien je weer nooit zeker waneer dat ding aan de gang gaat.

Ja sorry, maar mensen zijn inderdaad vaak te 'stom' om garbage collecting zelf te doen. Memory leaks komen vooral in grote systemen vaak voor. Leer je wel eens als je aan grote projecten bezig gaan, i.p.v. wat spelletjes in mekaar prutst.

Citaat:

Raven schreef op 06-11-2004 @ 13:08 :

java is stiekum helemaal geen compiler maar een interpreter die regel voor regel vertaalt en uitvoert ( lees GW_BASIC)
het draait op elke computer?, gebleer ! basic draait op die manier ook op elke PC ( op elke computer draait het zoieso niet)

Compleet fout. Ten eerste is Java een taal, welke naar een Intermediate Language wordt vertaald, bytecode dus. Deze bytecode wordt NIET geinterpreteerd, maar at-runtime gecompileerd. Dit is trouwens afhankelijke van welke runtime environment je gebruikt, de taal staat daar los van.

Citaat:

Raven schreef op 06-11-2004 @ 13:08 :

C++ daarentegen kan voor elke computer (microprocessor) gecompileert worden en levert zeer efficiente code.

Java draait op vrijwel elke computer ZONDER dat het opnieuw gecompileerd hoeft te worden.

Citaat:

Raven schreef op 06-11-2004 @ 13:08 :

in java declareer je alles ook van te voren want alles zit in een object. en wat in een object zit is eigenlijk al gedeclareert.

Wat een onzin. In C++ declareer je iets 2 keer, in Java/demeestenaderetalen 1 keer. ZOu je kunnen zeggen dat de C++ compilers gewoon te stom zijn om dat te snappen.

C++ is een uitstervende taal. De meeste multi-tier bussiness apps draaien op Java tegenwoordig.

Chimera 07-11-2004 12:26

Citaat:

Raven schreef op 06-11-2004 @ 13:33 :

opnieuw opgestart..
't ding was ineens niet meer vooruit te trappen.
integrity fouten op mijn harde schijf.

ik heb m'n hele harde schijf kunnen formatteren..
en IK HEB DE ROTZOOI NOOIT MEER AANGERAAKT :mad:

als ik eraan terug denk komt er nog stoom uit m'n oren

Sorry hoor, maar dit is gewoon grappig. Wat een compleet stupide reden om Java af te zeiken.

Kennelijk was je systeem gewoon naar z'n grootje aan het gaan. Niet de 'schuld' van Java dus.

Raven 07-11-2004 13:02

Citaat:

Chimera schreef op 07-11-2004 @ 13:26 :
Sorry hoor, maar dit is gewoon grappig. Wat een compleet stupide reden om Java af te zeiken.

Kennelijk was je systeem gewoon naar z'n grootje aan het gaan. Niet de 'schuld' van Java dus.

ik moet die rommel gewoon niet :D
nee maar serieus .. op school is 't ook een paar keer grandioos fout gegaan. en als ik nou niet kon programmeren dan lag het aan mij .. maar 't was echt een disaster met dat ding.

met C++, turbo pascal, delphi en zelfs basic heb ik nooit problemen gehad tja ...

Lethalis 07-11-2004 15:15

Citaat:

Raven schreef op 07-11-2004 @ 14:02 :
ik moet die rommel gewoon niet :D
nee maar serieus .. op school is 't ook een paar keer grandioos fout gegaan. en als ik nou niet kon programmeren dan lag het aan mij .. maar 't was echt een disaster met dat ding.

met C++, turbo pascal, delphi en zelfs basic heb ik nooit problemen gehad tja ...

Kom op, als je een beetje verstand hebt van moderne besturingssystemen weet je ook wel dat fouten in het bestandssysteem niets te maken hebben met een JAVA compiler en / of runtime.

Raven 07-11-2004 16:39

Citaat:

Chimera schreef op 07-11-2004 @ 13:24 :
Sorry, maar deze reactie is te stom voor woorden.



Goh, misschien komt dat omdat Java een OBJECT ORIENTED programming language is? En kom niet aan dat C++ dat ook is, C++ is precies dat, C pluseenbeetje.

Bovendien is Java gewoon niet traag.



Ja sorry, maar mensen zijn inderdaad vaak te 'stom' om garbage collecting zelf te doen. Memory leaks komen vooral in grote systemen vaak voor. Leer je wel eens als je aan grote projecten bezig gaan, i.p.v. wat spelletjes in mekaar prutst.



Compleet fout. Ten eerste is Java een taal, welke naar een Intermediate Language wordt vertaald, bytecode dus. Deze bytecode wordt NIET geinterpreteerd, maar at-runtime gecompileerd. Dit is trouwens afhankelijke van welke runtime environment je gebruikt, de taal staat daar los van.



Java draait op vrijwel elke computer ZONDER dat het opnieuw gecompileerd hoeft te worden.



Wat een onzin. In C++ declareer je iets 2 keer, in Java/demeestenaderetalen 1 keer. ZOu je kunnen zeggen dat de C++ compilers gewoon te stom zijn om dat te snappen.

C++ is een uitstervende taal. De meeste multi-tier bussiness apps draaien op Java tegenwoordig.


C++ aan't uitsterven .. dacht ut niet.
Microsoft heeft al aangekondigt dat na 2007 er totaal GEEN ondersteuning voor java meer zal zijn...
je kan tot januari 2007 nog een java virtual machine op je windows bak zetten .. op versies die daarna komen zal het niet meer werken
(zal nog wel 'n rel geven dat besluit denk ik)
en ik pruts wel meer in elkaar dan spelletjes ;)

Manuzhai 07-11-2004 20:09

Citaat:

Raven schreef op 07-11-2004 @ 17:39 :
Microsoft heeft al aangekondigt dat na 2007 er totaal GEEN ondersteuning voor java meer zal zijn...
Net alsof Microsoft kan afdwingen dat Java niet meer ondersteund wordt. Ik denk dat Sun de VM ook best zonder Microsoft-support kan porten naar Longhorn. Plus dat Windows natuurlijk lang niet het enige platform is waarop software kan draaien; een van de grote voordelen van Java is dat het vrijwel onveranderd op diverse OS'en kan draaien, zoals Linux, MacOS X, *BSD-varianten.

Raven 07-11-2004 20:23

Citaat:

Manuzhai schreef op 07-11-2004 @ 21:09 :
Net alsof Microsoft kan afdwingen dat Java niet meer ondersteund wordt. Ik denk dat Sun de VM ook best zonder Microsoft-support kan porten naar Longhorn. Plus dat Windows natuurlijk lang niet het enige platform is waarop software kan draaien; een van de grote voordelen van Java is dat het vrijwel onveranderd op diverse OS'en kan draaien, zoals Linux, MacOS X, *BSD-varianten.
hmmja ik vrees dat onze bill daar een stokkie voor zal steken...
maar da's weer een ander verhaal

Chimera 07-11-2004 21:43

Citaat:

Raven schreef op 07-11-2004 @ 17:39 :
C++ aan't uitsterven .. dacht ut niet.

In de bussiness logic wereld is C++ aan het uitsterven ja, of je het nu 'denkt' of niet. Aangezien jij niet in die bussiness zit, kan ik dan ook niks dan hartelijk lachen om de onzin die je hier neerpoot.

Ik weet niet aan welke instelling jij precies informatica zou moeten hebben gedaan, maar gezien je belachelijke verhaal over corrupte systemen zal het niet veel meer dan LOI geweest zijn.

Lethalis 07-11-2004 21:45

Citaat:

Raven schreef op 07-11-2004 @ 21:23 :
hmmja ik vrees dat onze bill daar een stokkie voor zal steken...
maar da's weer een ander verhaal

Erm, Longhorn zal sowieso legacy apps moeten ondersteunen, alleen al om de Windows userbase te waarborgen.. en zal dus ook JAVA aan kunnen.

Alles draait om applicaties. Als je favoriete programma's niet meer werken op een nieuwe versie van Windows, dan stap je ook niet over. Dus het lijkt me sterk dat het gaat gebeuren.

Daarnaast, de stap van MS om over te stappen naar fully managed code betekent niet meteen het einde van JAVA. Je zou een JAVA runtime kunnen bouwen die gewoon als managed Longhorn applicatie draait..

Raven 07-11-2004 21:54

Citaat:

Chimera schreef op 07-11-2004 @ 22:43 :
In de bussiness logic wereld is C++ aan het uitsterven ja, of je het nu 'denkt' of niet. Aangezien jij niet in die bussiness zit, kan ik dan ook niks dan hartelijk lachen om de onzin die je hier neerpoot.

Ik weet niet aan welke instelling jij precies informatica zou moeten hebben gedaan, maar gezien je belachelijke verhaal over corrupte systemen zal het niet veel meer dan LOI geweest zijn.

ik heb hogere informatica gestudeert in eindhoven .. maar ik reageer bij deze dus niet meer op jou aangezien je alleen zielig commentaar kan leveren.

en .. ik zit niet in de buisness ?.. HA HA HA

Raven 07-11-2004 21:56

Citaat:

******** schreef op 07-11-2004 @ 22:45 :
Erm, Longhorn zal sowieso legacy apps moeten ondersteunen, alleen al om de Windows userbase te waarborgen.. en zal dus ook JAVA aan kunnen.

Alles draait om applicaties. Als je favoriete programma's niet meer werken op een nieuwe versie van Windows, dan stap je ook niet over. Dus het lijkt me sterk dat het gaat gebeuren.

Daarnaast, de stap van MS om over te stappen naar fully managed code betekent niet meteen het einde van JAVA. Je zou een JAVA runtime kunnen bouwen die gewoon als managed Longhorn applicatie draait..

DAT klopt natuurlijk maar zoals ik al zei de meeste applicaties worden niet in java geschreven ;)

Dr HenDre 07-11-2004 22:08

Citaat:

Chimera schreef op 07-11-2004 @ 22:43 :
In de bussiness logic wereld is C++ aan het uitsterven ja, of je het nu 'denkt' of niet. Aangezien jij niet in die bussiness zit, kan ik dan ook niks dan hartelijk lachen om de onzin die je hier neerpoot.

Ik weet niet aan welke instelling jij precies informatica zou moeten hebben gedaan, maar gezien je belachelijke verhaal over corrupte systemen zal het niet veel meer dan LOI geweest zijn.

beter ga jij naar een LOI waar ze wat aan je eigendunk doen tjappie (y) je kan best gelijk hebben, maar doe wat aan je presentatie

en nee, ik heb nix ontopics toe te voegen :o

Kawoutertje 07-11-2004 23:26

Hehe, leuk om te zien dat er op zo'n onnozele vraag ivm C++ zo'n discussie kan losbarsten :-)

Dank trouwens voor het antwoord !

Wat de rest van de discussie betreft....

Het klopt dat C++ op dit ogenblik nog een pak populairder is als programmeertaal dan Java. En uit eigen ervaring merk ik ook dat C++ nog wel sneller is dan Java. Maar Java staat dan ook nog maar in haar kinderschoenen, in vergelijking met C (of C++).

Toch ben ik er vrij zeker van dat java het in de (nabije) toekomst zal winnen van C++. Het feit dat java bedoeld is om echt object oriented te programmeren alleen al, is al genoeg om Java te verkiezen boven C++. Hoewel ik C++ nog niet zo goed ken, lijkt het mij dat Java zich veel beter leent tot object oriented programmeren. En OO programmeren is uiteraard beter dan top-bottom programmeren, al was het maar met het oog op het uitbereiden van het programma.

En zoals reeds gezegd is java helemaal niet haar laatste adem aan het uitblazen. Eens gecompileerd is java platform-onafhankelijk. Je hebt enkel een VM nodig om de 'machine code' te runnen.
Ten eerste denk ik dat Sun best wel een VM kan produceren die op Windows draait, zonder dat er specifieke support van Windows nodig is.
En ten twee kan windows het niet maken om elke Java-VM af te blokken. Het zou in eerste instantie veel grote bedrijven verliezen als klant, en op termijn ook meer en meer particulieren.
Ik denk dat Windows eerder alles ivm java gaat overlaten aan Sun, en het gewoon niet meer standaard gaat inbouwen in Windows. (Daar zijn ze nu trouwens ook al mee bezig. De microsoft VM wordt niet meer verder ondersteund. Als je een java VM nodig hebt, wordt er door windows support nu al verwezen naar de Sun-VM.)

Correct me if I'm wrong... :)

Manuzhai 08-11-2004 10:01

Citaat:

Raven schreef op 07-11-2004 @ 22:54 :
hogere informatica gestudeert
Way to go, kiddo.

Kennelijk heb je the bigger picture daar niet zo meegekregen.

Raven 08-11-2004 15:35

OOP in C++ ( voor dummies ? :p )

Code:

// Dit is de basis klasse voor het dynamisch werken met objecten



class TListobject
{
private:


public:
TListobject * next;
TListobject * prev;

TListobject()
  {
  next=NULL;
  prev=NULL;
  destroyed=false;
  }

};

class TList
{
public:
TListobject * items;
int count;
void add(TListobject * listobject);
void kill(void);

TList()
  {
  items=NULL;
  count=0;
  }

~TList()
  {
  TListobject * p;     
  TListobject * hulp;
  p=items;
  while (p!=NULL)
      {
      hulp=p;
      if (items==p) items=p->next;
      if (p->next!=NULL) p->next->prev=p->prev;
      if (P->prev!=NULL) p->prev->next=p->next;
      p=p->next;
      free(hulp);
      }
  }

};

void TList::kill(void)  // deze komt in de mainloop en gooit alle
{                              // verwijderde objecten daadwerkelijk uit het
TListobject * p;      // geheugen
TListobject * hulp;
p=items;
while (p!=NULL)
      {
      if (p->destroyed)
        {
        hulp=p;
        if (items==p) items=p->next;
        if (p->next!=NULL) p->next->prev=p->prev;
        if (P->prev!=NULL) p->prev->next=p->next;
        p=p->next;
        free(hulp);
        count--;
        }
        else p=p->next;
      }
}

// deze voegt een object toe
void TSpriteEngine::add(TListobject * listobject)
{
if (items==NULL)// list is leeg
  {
  listobject->next=NULL;
  items=listobject;
  listobject->prev=NULL;
  count=1;
  }
else
  {
  listobject->NEXT=items;
  items->prev=listobject;
  items=listobject;
  listobject->prev=NULL;
  count++;
  }
}




// custom objectklasse.. voorbeeldje...

class TAdres: public TListobject
{
public:
char          naam[80];
char          straat[80];
char woonplaats[80];

TAdres()
  {
  destroyed=false;
  strcpy(naam,"");
  strcpy(straat,"");
  strcpy(woonplaats,"");
  }
};


/// ergens in je proggie
TList    lijst1;
TAdres Adres1;

lijst1.add(adres1);

/*
verwijderen snappen jullie wel denk ik
je zet gewoon adres1.destroyed op true en weg is ie
TList::kill haalt 'm er dan netjes uit ... wel in da mainloop zetten he..
en als je slim bent hou je ff bij of er wel dingen verwijderd zijn
dat scheelt weer CPU tijd
*/

uiteraard kan je ook van TList weer een klasse afleiden met de nodige extra's zoals sorteren, zoeken, een kill waar je een naam op kan geven enz enz
multiple inherritance ook nog uitleggen ?? :p

[edit] Layout-verneukerij.

Fade of Light 08-11-2004 15:39

Wat een triest topic is dit geworden zeg (n)

eddie 08-11-2004 17:57

Raven is uitgeluld :)

Raven 08-11-2004 18:22

Citaat:

eddie schreef op 08-11-2004 @ 18:57 :
Raven is uitgeluld :)
Code:

if (eddie)
  {
    :p ;
  }
else
  {
  be_nice();
  }


Lethalis 08-11-2004 18:40

Citaat:

Kawoutertje schreef op 08-11-2004 @ 00:26 :
Correct me if I'm wrong... :)
Wat je krijgt, is gewoon dat er voor elk beestje een huisje wordt gevonden.. oftewel: mensen zullen JAVA / C++ / C# / ... (vul maar in) gebruiken wanneer het voor hun toepassing het meest geschikt is.

Zo krijgt elke taal en runtime zijn eigen specialiteit. Ik vind het dan ook altijd een beetje raar als mensen praten over de strijd tussen taal A en taal B.

@Raven:
Er wordt heel wat in JAVA geschreven. Zoek maar eens op www.monsterboard.nl naar vacatures voor JAVA en daarna voor C++. Dan ben je toch erg in de minderheid met C++.

eddie 08-11-2004 18:46

Citaat:

Raven schreef op 08-11-2004 @ 19:22 :
Code:

if (eddie)
  {
    :p ;
  }
else
  {
  be_nice();
  }


Leuk:
Code:

void* Realocate(void*buf, int os, int ns)
{
void*temp;
temp = malloc(os);
memcpy((void*)temp, (void*)buf, os);
free(buf);
buf = malloc(ns);
memset(buf, 0, ns);
memcpy((void*)buf, (void*)temp, ns);
return buf;
}

How to write unmaintainable code

Fade of Light 08-11-2004 18:48

Weet je waarom ik dit topic haat? Omdat ik nu, ja nu, het vak "aspecten van programmeertalen" aan het leren ben... Al dat gezever over Ada, c++, java, perl, blabla grr niet leuk (en veel te veel)

Raven 08-11-2004 19:38

Citaat:

Fade of Light schreef op 08-11-2004 @ 19:48 :
Weet je waarom ik dit topic haat? Omdat ik nu, ja nu, het vak "aspecten van programmeertalen" aan het leren ben... Al dat gezever over Ada, c++, java, perl, blabla grr niet leuk (en veel te veel)
ok nu Cobol, pascal en basic dan ? :p :D

Raven 08-11-2004 19:41

Citaat:

******** schreef op 08-11-2004 @ 19:40 :
Wat je krijgt, is gewoon dat er voor elk beestje een huisje wordt gevonden.. oftewel: mensen zullen JAVA / C++ / C# / ... (vul maar in) gebruiken wanneer het voor hun toepassing het meest geschikt is.

Zo krijgt elke taal en runtime zijn eigen specialiteit. Ik vind het dan ook altijd een beetje raar als mensen praten over de strijd tussen taal A en taal B.

uiteraard. en het is ook een kwestie van smaak :)

Fade of Light 08-11-2004 19:59

Citaat:

Raven schreef op 08-11-2004 @ 20:38 :
ok nu Cobol, pascal en basic dan ? :p :D
:'(

generic abstraction = (n)

Raven 08-11-2004 20:36

Citaat:

Fade of Light schreef op 08-11-2004 @ 20:59 :
:'(

generic abstraction = (n)

wist je dat basic nog commando's heeft om data van een cassettebandje te laden :D

Manuzhai 08-11-2004 21:42

Okay, volgens mij kan dit topic nu wel op slot.

Mocht er nog iemand zin hebben om een topic te starten met als doel een algemene discussie over programmeertalen, dan moet ie dat vooral doen. Misschien ben ik zelfs wel bereid een en ander te kutten met de posts zodat ze in het nieuwe topic terecht komen.


Alle tijden zijn GMT +1. Het is nu 03:27.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.