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.

EA lover

Legacy Member
En dat 2de wat je zet moet je dan iets ingeven met x= of niet?
Kan jij mij dan eens een voorbeeldje geven van die code.

killgore

Legacy Member
ik denk voor wat jij nodig hebt 22/7 dicht genoeg ligt.

edit: ik gebruik dus
#define PI 3.141592654

:)

killgore

Legacy Member
Vich zei:
Ikke #define PI 3.1415926535897932 :P
mimimimi

ik em de mijne gewoon van rekenmachine overgetypt met in het achterhoofd dak wel es zou zoeken naar langere versie (was inet loze dag vermoed ik). nu heb ek dus langere :).

QplQyer

Legacy Member
killgore zei:
sounds like c++.net :p

ma tbh, werken met pointers MOET niet hoor, ik denk dat je met pass-by-reference (welke nog steeds onafhankelijk staat in principe van pointers) ook redelijk wat kan doen.
Ook kan je in c++ met dingen als auto_ptr (of eigen versie ervan liever :p) redelijk wat functies van java en c# overnemen.

Voor de rest sluit ik me volledig bij u en vich aan: gebruik elke taal waar et goed voor is. C/c++ kan je aanschouwen als het hedendaagse low-level programmeren, gebruik dat dan voor situaties waar low-level het beste uitkomt, en gebruik java/c# als een high-level c-variant :).

Gelukkig dat er nog dingen als .net zijn, moesten zulke dingen wat meer uitbreiden he, mensen zouden niet meer kreften welke taal et beste is :p
liever meer dingen als java dan .NET hoor, java is tenminste platform onafhankelijk, .NET wordt wellicht ook gesupport onder linux, maar dan nog ...

Vich

Legacy Member
killgore zei:
mimimimi

ik em de mijne gewoon van rekenmachine overgetypt met in het achterhoofd dak wel es zou zoeken naar langere versie (was inet loze dag vermoed ik). nu heb ek dus langere :).

Noob :P dat stuk van jou kende ik van buiten :P


@QplQyer:
Nog nooit met .NET gewerkt waarschijnlijk? C# is echt een nette taal hoor! Ik denk dat we echt in die richting stilaan aan't evolueren zijn. De ondersteuning van .NET in Linux is al prima (dotGNU, mono).

Sprynxky Man

Legacy Member
Vraagje : als je een vector aanmaakt in c++, waar wordt het geheugen voor die vector dan gealloceerd?

Stel dat je een klasse hebt met volgend attribuut :

Code:
class blablabla {
  public :
    methodes;
  private:
    vector<int> getallen;
};

Wordt dat dan op de stapel of op de heap gealloceerd? Normaal zou het op de stapel moeten zijn (omdat je geen pointer, maar een object declareert), maar aangezien het dynamisch moet kunnen groeien, lijkt de heap mij logischer ...


PS : heeft er iemand een goeie c++ library voor matrix algebra? Een lib die dus dingen als LU decompositie, stelsels oplossen, eigenvectoren en eigenwaarden zoeken, determinanten berekenen, ... kan uitvoeren.

killgore

Legacy Member
Sprynxky Man zei:
Vraagje : als je een vector aanmaakt in c++, waar wordt het geheugen voor die vector dan gealloceerd?

Stel dat je een klasse hebt met volgend attribuut :

Code:
class blablabla {
  public :
    methodes;
  private:
    vector<int> getallen;
};

Wordt dat dan op de stapel of op de heap gealloceerd? Normaal zou het op de stapel moeten zijn (omdat je geen pointer, maar een object declareert), maar aangezien het dynamisch moet kunnen groeien, lijkt de heap mij logischer ...


PS : heeft er iemand een goeie c++ library voor matrix algebra? Een lib die dus dingen als LU decompositie, stelsels oplossen, eigenvectoren en eigenwaarden zoeken, determinanten berekenen, ... kan uitvoeren.

eerste: heap
de template ZELF alloceert dynamisch geheugen he, wat ook logisch is :), uw data komt dus eigenlijk op de heap, het vector-object zelf is dan weer stack.

2e: maak da zelf, is goede manier om wat beter in algorithmes in te komen :p.

Hale

Legacy Member
het is gewoon een beetje verwarrend omdat je bij het declareren van een vector nergens een new oproep doet, en daarom de indruk krijgt dat het op de stack zit.
maar die vector<int> getallen; roept zelf een new op waardoor alles wat in de vector zit idd op de heap terecht komt en de referentie naar uw vector op de stack. ( dat laatste geldt natuurlijk alleen als uw blablabla-object op de stack zit , als blablabla zelf ook op de heap zit, dan zit de referentie naar de vector daar natuurlijk ook ).

Sprynxky Man

Legacy Member
Thx, had zo'n vermoeden, maar wou het graag bevestigd zien.

Ivm de matrix library : die zelf schrijven is zeker doenbaar (ik ken de meeste van die algoritmes), maar het probleem is tijd. Aan een goeie lib zit je al gemakkelijk een maand of 2. Maar ik heb er ondertussen een zeer goeie gevonden.
(Voor de geïnteresseerden : http://www.magic-software.com/ )



Nieuwe vraag : hoe definieer je de definities van de functies een template class, buiten de klassedeclaratie?

Je hebt dus een template class met functie declaraties in een .h file en je wil die functies definiëren in een .cpp file. Hoe doe je dat? Ik heb al verschillende dingen geprobeerd, maar het geeft altijd wel errors.

Jacko

Legacy Member
wlibaers zei:
Hoewel deze functionaliteit in de C++ standaard zit zijn er zeer weinig compilers die dit ook toelaten. De meeste C++ compilers voldoen nog steeds niet aan de taalstandaard.

Inderdaad, als je compiler de export niet ondersteund, kan je natuurlijk altijd de template functies in de header definieren. Als er bepaalde functionaliteit inzit die vrij uitvoerig is en niet type-aware moet zijn, kan je altijd een basis klasse implementeren en de definities hiervan alsnog in een source file stoppen.

killgore

Legacy Member
fretn zei:
werkendie page buttons ook nie meer goe bij u ?
naar u opties gaan en daar uw pages volledig opnieuw instellen, das dat in uw profiel post per pages nog op 50 staat of zo. Khad da ook voor ;).
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