Gå til innhold

Funksjoners returnerings type


Anbefalte innlegg

Skrevet

Hei!

 

Har en funksjon som kan returnere en int eller en string. Dette finner funksjonen ut ved å sjekke noen flagg som er suttet. Så spørsålet er egentlig:

Hvordan kan jeg lage en funksjon som kan returnere en string eller en int?

Videoannonse
Annonse
Skrevet

Så vidt jeg vet kan man ikke returnere en <variabel> variabel i c (antar at det er c du snakker om).

 

Jeg ville nok ha sendt med en peker til begge variablene, string og int til funksjonen, deretter satt den du ville ha, også sjekket der du kalte funksjonen om hvem som er satt etter at funksjonen er ferdig å kjøre.

 

funksjon(&tall, *string);
if(tall != NULL) // tallet ble satt - evt. sette tall til -1 hvis det ikke blir brukt.
else//string er satt...

 

evt. returnere en string (char array) som kan konverteres til en int hvis dette er tilfelle.

Skrevet (endret)

Returner en struktur som inneholder en int og en void*

Int forteller hva slags datatype som returneres, dersom den forteller at det er et integer, så castes void* til int.

 

Men jeg må si dette er litt poengløst, men det er ikke min sak hehe

 

edit: jeg synes sygard sin er fin ut også jeg, bedre en min løsning.

Endret av GeirGrusom
Skrevet

Hva med en struct som inneholder en IsInt variabel og un string-int union.

Hvis du ikke vil ha stuct så kan du jo sende noen pekere til variabler med funksjonen.

Skrevet (endret)

Er vel her man bruker Templates er det ikke?

Dette funker bare hvis du allerede vet om det er string eller int før du kaller funksjonen, men som jeg har skjønt det så gjør du det.

 

template<class rettype=int> //Default er Int
rettype MinFunksjon(...) {rettype returnverdi; return returnverdi;}

//Der du kaller funksjonen
if(flag==0) //Int
int verdi=MinFunksjon<int>(...);
else //String
string verdi=MinFunksjon<string>(...);

 

N.B: Har ikke testet denne koden, bare et eksempel!

Endret av wildex999

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...