/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
overload af class funktioner
Fra : Dennis


Dato : 12-08-05 22:20

Hej

Antag jeg har en klasse med en funktion( ), hvordan overloader jeg
funktionen således den kan bruges som både:

x.funktion( );
og
z = y + x.funktion( );

, hvor x,y,z er af klassen C. (jeg har styr på operatorer så z=y+x virker)

Jeg troede flg. kunne gøre det, men nej!

class C{
void funktion( void );
C funktion( void ); // Returnerer et nyt objekt
}

Håber det kan forstås, og så på forhånd tak!
Dennis





 
 
Bertel Brander (12-08-2005)
Kommentar
Fra : Bertel Brander


Dato : 12-08-05 22:59

Dennis wrote:
> Hej
>
> Antag jeg har en klasse med en funktion( ), hvordan overloader jeg
> funktionen således den kan bruges som både:
>
> x.funktion( );
> og
> z = y + x.funktion( );
>
> , hvor x,y,z er af klassen C. (jeg har styr på operatorer så z=y+x virker)
>
> Jeg troede flg. kunne gøre det, men nej!
>
> class C{
> void funktion( void );
> C funktion( void ); // Returnerer et nyt objekt
> }
>
> Håber det kan forstås, og så på forhånd tak!

Som du nok har fundet ud af kan man ikke overloade en
funktion der kun adskiller sig ved retur type.

Du kan godt kalde x.funktion() uden at bruge retur værdien,
men vil dog spilde tid på at oprette et objekt som bliver
nedlagt igen med det samme (medmindre at kompileren kan se
at du ikke bruger det).

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Søg
Reklame
Statistik
Spørgsmål : 177429
Tips : 31962
Nyheder : 719565
Indlæg : 6407950
Brugere : 218878

Månedens bedste
Årets bedste
Sidste års bedste