static_cast<type>(from)

For mer info klikk her.

Static_cast omgjør verdien fra en type, for eksempel double, til en verdi av en annen type, for eksempel int.

		

int myInt = static_cast<int>(6.7); // myInt = 6

	

I eksempelet under, runder vi av pi til én desimal ved å omforme fra double til int. Her bruker vi at int ikke kan ha desimaler.

		

// Runder av pi til én desimal
double pi { 3.14159 }; // pi = 3.14159
int temp = static_cast<int>( pi * 10 ); // temp = 31
pi = static_cast<double>( temp / 10.0 ); // pi = 3.1

	
		

// Dette kan også gjøres mer kompakt
double pi {3.14159};
pi = static_cast<double>(static_cast<int>( pi * 10 ) / 10. );

	

Et annet eksempel på hvor det kan være nyttig med static_cast er hvis man bruker en enum class. I eksempelet under finner vi at mai er den 5. måneden.

		

// Headerfil (month.hpp)

#pragma once
enum class month {
    January = 1, February, March, April, May, June, July, August, September, October, November, December
};

	
		

// Hovedfil (main.cpp)

#include <iostream>
#include "month.hpp"
int main()
{
    std::cout << "May is the " << static_cast<int>(month::May) << "th month." << std::endl;
}