Just nu i M3-nätverket
Gå till innehåll

Snabba små-frågor, C++


sww

Rekommendera Poster

Ok, jag menade att jag utvecklar ett spel med hjälp av en 3d-motor. Jag ser 'f' hela tiden i samband med float, men jag vet faktiskt inte vad det betyder, har inte sett det i nån c++ manual och det lite svårt att googla.. men du kanske vet?

 

[inlägget ändrat 2008-06-01 13:34:13 av sww]

Länk till kommentar
Dela på andra webbplatser

Real position = 10.0f:

 

Real är en egendefinierad datatyp vilken man deklarerar vid namn postion och initierar den med värdet 10.0, vilket skall uppfattas som ett flyttal.

 

Typkonverteringen är dock implicit eftersom kompilatorn typomvandlar decimaltal (ej heltal) automatiskt till double. I detta fall antar jag att man vill behandla talet som en float, därav den explicita typomvandlingen.

 

'f' står alltså för att värdet skall behandlas som ett flyttal (float).

 

Länk till kommentar
Dela på andra webbplatser

Apropå att du kan skriva:

 

Bild havet;

cout << havet.size();

 

Nu vet jag inte vad du får för utdata, men det som händer är att den person som skrivit klassen Bild har en konstruktor som initierar vissa startvärden. Om ingen egendefinierad konstruktor finns, har alla värden sitt standardvärde (oftast 0).

 

 

Länk till kommentar
Dela på andra webbplatser

Okej, jag tror jag är med. I detta faller är Real en typedef av float så då hade det egentligen inte behövt stå 10.0f utan bara 10.0?

 

Länk till kommentar
Dela på andra webbplatser

Nja, inte om du ska ha en float. Den implicita typkonverteringen av kompilatorn är double, så castet är nödvändigt i ditt fall. Jag gillar mer att man använder t.ex (float)10.0, istället för 10.0f, eftersom man tydligt ser formateringen.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...