wlibaers
Legacy Member
De reden waarom het char* is en niet char: wat je terug wil sturen is geen char, maar een char array. Vermits dat niet kan in C++, stuur je in de plaats een pointer terug.
Gebruik de string class als je dit soort dingen wil doen. Of maak een char array op de heap en return een pointer naar die array (complexer, zou in een groot programma door een vergeetachtigheid geheugenlekken kunnen veroorzaken). De code daar is, in complexere situaties, onbetrouwbaar. Om een mogelijk probleem te illustreren:
Als je pointers en functies begrijpt is het zeer eenvoudig te weten wat hier gebeurt. Indien niet, dan kan je lang zoeken (zeker doen, goeie oefening, ga er desnoods stap voor stap door met de debugger).
Ik zou een goed boek aanraden om wat meer over pointers te leren.
Expert C Programming
Peter van der Linden
Dat is wel een C boek, en op zich niet echt geschikt om de taal te leren, zeker niet geschikt om C++ te leren. Maar zijn uitleg over pointers is wel heel goed. Zoek het desnoods eens in een bibliotheek, 't is een vrij kort boekje.
Gebruik de string class als je dit soort dingen wil doen. Of maak een char array op de heap en return een pointer naar die array (complexer, zou in een groot programma door een vergeetachtigheid geheugenlekken kunnen veroorzaken). De code daar is, in complexere situaties, onbetrouwbaar. Om een mogelijk probleem te illustreren:
Code:
int main() // ook in modern C is dit correct, niet alleen in C++
{
char invoer1[1024]; // buffer overflow bug, typ niet meer dan 1023 letters
char invoer2[1024];
char *uit1, *uit2;
reverse abc;
cout<<"Typ een woord: ";
cin>>invoer1;
cout<<"Nu een ander: "; // niet hetzelfde woord gebruiken!
cin>>invoer2;
uit1 = abc.twist(invoer1);
uit2 = abc.twist(invoer2);
cout<<"antwoorden: "<< uit1 << " " << uit2 << endl;
return 0;
Als je pointers en functies begrijpt is het zeer eenvoudig te weten wat hier gebeurt. Indien niet, dan kan je lang zoeken (zeker doen, goeie oefening, ga er desnoods stap voor stap door met de debugger).
Ik zou een goed boek aanraden om wat meer over pointers te leren.
Expert C Programming
Peter van der Linden
Dat is wel een C boek, en op zich niet echt geschikt om de taal te leren, zeker niet geschikt om C++ te leren. Maar zijn uitleg over pointers is wel heel goed. Zoek het desnoods eens in een bibliotheek, 't is een vrij kort boekje.