I C + + , en funksjon objektet er en klasse objekt som du kan bruke som en funksjon. Det fungerer på samme måte som andre funksjoner , bortsett fra at du bruker funksjonen kaller operatøren å sende verdier til objektet klassen . For eksempel kan en funksjon objekt ta en serie med tall , selv om du ikke vet hvor mange brukeren vil levere når du skriver koden , og legge dem sammen for å lagre resultatet i klassen objektet . Bruk
vil bruke en funksjon objekt , må du først definere og skape et objekt klasse , og deretter opprette en funksjon som heter " operatør" som en av de offentlig funksjon medlemmer. Hvis du opprette private medlem variabler , kan du sette sin verdi i klassen konstruktør , deretter endre dem med andre verdier gått gjennom operatøren funksjonen. C + + har en fordel over lignende programmeringsspråk som Java , fordi disse andre språk ikke tillater operatør overbelastning .
Syntax
Du oppretter funksjonen gjenstander på samme måte som alle andre objekter i en C + + program . Du definerer en ny klasse , og deretter opprette medlem variabler og offentlige og private funksjoner etter behov. Imidlertid er en av de offentlige funksjoner du trenger for å implementere funksjonen kaller operatøren , som lar deg bruke klassen objekt i programmet som en funksjon . I kroppen av programmet , oppretter du funksjon gjenstander på samme måte som alle andre objekt , ved å skrive klassen navn , så objektet navn.
Call Operatør
samtalen operatør funksjon er det som gjør en funksjon objekt forskjellig fra andre klasse objekter . Syntaktisk , må du bruke to sett med braketter for å skape en operatør funksjon. For eksempel skriver " void operator ( ) ( int val1 ) { total + = val1 ;} ; " lar deg bruke objektet som funksjon å legge til verdier i en løpende sum i en klasse medlem variabel . Du kan deretter bruke denne variabelen totalt i andre klasse funksjoner .
Overbelastning
Overbelastning funksjonen operatøren endrer ikke hvordan du kaller funksjonen , endrer det hvordan du passerer verdier til objektet. Den lar deg passere et vilkårlig antall argumenter , som hjelper hvis du ikke vet hvor mange du trenger for å passere under kjøring. For eksempel , hvis du har en klasse konstruktør som tar bare to parametere og har en funksjon samtale operatør som tar tre , kan du bruke en eksisterende funksjon objekt for å starte en ny en , men pass tre parametere til det i stedet for to. Dette overbelaster konstruktør og tvinger operatøren funksjonen for å klargjøre verdiene .