Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[C++] return null?

None
8 antwoorden
  • Als je een functie hebt met als return waarde een eigen klasse en er gaat iets fout in de functie dan wil ik null teruggeven zodat de aanroepen weet hoe het zit.
    (Zo werkt het in Java tenmisnte :D)

    Hoe doe ik dat in C++?
  • eeeuh:

    return NULL;

    return FALSE;

    return 0;

    return -1;

    of bedoel je dat niet ? :roll:
  • Dat werkt dus niet, want NULL, 0 en -1 zijn intergers en FALSE is een boolean en de return waarde van m'n functie is van het type MP3 (mijn klasse). :(
  • [quote:7673b1ddf1="c.j.krul"]Dat werkt dus niet, want NULL, 0 en -1 zijn intergers en FALSE is een boolean en de return waarde van m'n functie is van het type MP3 (mijn klasse). :([/quote:7673b1ddf1]
    Is het niet zo dat je in pricipe een pointer naar het object MP3 teruggeeft?
    In dat geval zou je een NULL pointer terug kunnen geven. Eventueel typecasten naar MP3.

    My 2 cents.
  • Ik ben nog niet met pointers bezig. Daar zullen we dan meer eens mee beginnen :)
  • Ga maar snel pointers leren anders krijg je het nog lastig in c++ :)

    In JAVA is een null pointer een object (reference type) en in c++ is het een harde pointer (value type). Het idee is hetzelfde, alleen de uitvoering is anders. Gebruik in c++ alleen een null pointer als je functie een object return value heeft. Dat heb jij dus, dus je kunt rustig de waarde (null) teruggeven, dat wordt gewoon geaccepteerd.

    Vervolgens kun je dit makkelijk contoleren (ff snel uit het hoofd):

    [code:1:abe86d5ac6]
    //functie prototype
    MP3 LoadMP3(char* filename);

    //main
    int main
    {
    char *fileName = "c:\test.mp3";
    MP3 myMP3 = new MP3(fileName);

    if ((LoadMP3(myMP3.fileName) != null))
    {
    //iets zinnigs hier
    }
    else
    {
    throw new Exception("Error");
    }

    return 0;
    }
    [/code:1:abe86d5ac6]
  • [quote:1ffb6c7928="c.j.krul"]Dat werkt dus niet, want NULL, 0 en -1 zijn intergers en FALSE is een boolean en de return waarde van m'n functie is van het type MP3 (mijn klasse). :([/quote:1ffb6c7928]

    Ja Grapjas,
    hoe denk je dan dat het in JAVA is geregeld !
  • [quote:1ed21e0f74="capt.501"]Ja Grapjas,
    hoe denk je dan dat het in JAVA is geregeld ![/quote:1ed21e0f74]
    Dat had w.roosenburg al netjes uitgelegd (Nog bedankt trouwens :)) dus ik heb nu een beetje een idee hoe dat geregeld is.

    Maar als je het nog beter / vollediger uit wil leggen dat mag dat natuurlijk
    :D

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.