webForumDet fria alternativet

(*pointer).tmp vs pointer->tmp

6 svar · 326 visningar · startad av fnolis

fnolisMedlem sedan sep. 200162 inlägg
#1

Någon som vet hastighetsskilnaden på detta?

BeatboxMedlem sedan okt. 20013 217 inlägg
#2

Om man använder (*pointer).tmp... kommer verkligen "->" operatorn att anropas om den är övelagrad i klassen ? Någon som vet ?

// BeatBox

-X-Medlem sedan okt. 20011 inlägg
#3

Samma hastighet.

JimmyPalmMedlem sedan nov. 200114 inlägg
#4

Anledningen till att det är samma hastighet är att:

 pPointer-\>GetAge();

"översätts" till:

 (\*pPointer).GetAge();

av kompilatorn när du kompilera koden. Anledningen till att man skriver -> är att det skall vara "lättare" att förstå sig på.

Således kommer båda att resultera i samma kod och därmed samma exekveringshastighet.

Lycka till!

JimmyPalmMedlem sedan nov. 200114 inlägg
#5

När det gäller frågeställningen om operatorn -> kommer att kallas på om man överlagra den, så finns det ett svar som jag skulle vilja ge.

UNDVIK detta!!! Om du vill överlagra operator -> så måste du vara en duktig programmerare på IDL programmering (som är ett script-språk som man kan använda sig av för att skapa kod som flera olika programmeringsspråk kan förstå).

UlfTMedlem sedan maj 20018 027 inlägg
#6

Inte för att jag har tänkt överlagra "->"-operatorn, men av ren nyfikenhet, varför är det just IDL man måste tänka på om man gör så?

BeatboxMedlem sedan okt. 20013 217 inlägg
#7

Iterface Description Language står det för och jag jobbar med det varje dag. Interfacebeskrivningar i COM brukar ju vara i IDL format.

Angående "->" operatorn så kan det ju vara så att man vill göra nått speciellt innan t ex en funktion anropas och jag förstår inte riktigt kopplingen till IDL.

// BeatBox

------------------
"Mörkrets gärningar, förekommer även på dagen"

Sixten Landby

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)