In C + + , een functie object is een klasse object dat u kunt gebruiken als een functie . Het werkt op dezelfde wijze als andere functies , behalve de functie oproep operator gebruiken om waarden door te geven aan de klas object . Bijvoorbeeld , kan een functie object een reeks getallen te nemen , zelfs als je niet weet hoeveel de gebruiker zal verstrekken wanneer u de code te schrijven , en voeg ze samen om het resultaat in de klas object op te slaan . Gebruik Om een functie object te gebruiken , moet u eerst definiëren en een objectklasse , maak vervolgens een functie genaamd "exploitant " als een van de publieke functie leden . Als u prive lidvariabelen maken, kunt u de waarde in te stellen in de klasse constructor , vervolgens te wijzigen met andere waarden doorgegeven via de operator functie . C + + heeft een voordeel ten opzichte van soortgelijke programmeertaal zoals Java , omdat deze andere talen niet toestaan voor operator overloading . Syntax U maakt functie objecten op dezelfde wijze als alle andere objecten in een C + + -programma . U definieert een nieuwe klasse , maak dan lidvariabelen en publieke en private functies als nodig is . Echter , een van de publieke functies die u nodig hebt om te implementeren is het functieaanroepoperator , waarmee u de klas object te gebruiken in uw programma als functie . In het lichaam van het programma , functie objecten te creëren u op dezelfde manier als elk ander object , door het intikken van de naam van de klasse , dan is de naam van het object . Call Operator De oproep operator functie is wat maakt een functie object anders dan andere klasse objecten. Syntactisch , moet je twee sets haakjes gebruiken om een operator functie te creëren . Bijvoorbeeld , het typen van " leegte operator ( ) ( int val1 ) { totaal + = val1 ;} ; " laat u het object als functie om waarden aan een lopend totaal in een klasse lidvariabele voegen gebruiken . U kunt dan gebruik maken van deze variabele totaal in andere klas functies . Overbelasting Overbelasting van de functie exploitant niet veranderen hoe je de functie aanroept , het wijzigt hoe u waarden doorgeven het object . Het laat je een willekeurig aantal argumenten , die helpt als je niet weet hoeveel je moet passeren tijdens runtime passeren . Bijvoorbeeld , als je een klasse constructor dat slechts twee parameters neemt en hebben een functie oproep operator die drie neemt , kunt u een bestaande functie -object gebruiken om te initialiseren een nieuwe , maar pas drie parameters om het in plaats van twee . Deze overbelasting van de constructeur en dwingt de operator functie om de waarden te initialiseren .
|