c++ casting
static_cast<int>(some_double);
c++ cast operator
struct X {
//implicit conversion
operator int() const { return 7; }
// explicit conversion
explicit operator int*() const { return nullptr; }
// Error: array operator not allowed in conversion-type-id
// operator int(*)[3]() const { return nullptr; }
using arr_t = int[3];
operator arr_t*() const { return nullptr; } // OK if done through typedef
// operator arr_t () const; // Error: conversion to array not allowed in any case
};
int main()
{
X x;
int n = static_cast<int>(x); // OK: sets n to 7
int m = x; // OK: sets m to 7
int* p = static_cast<int*>(x); // OK: sets p to null
// int* q = x; // Error: no implicit conversion
int (*pa)[3] = x; // OK
}
c++ casting
static_cast:
//does implicit conversions between types.
void* data;
pointer *pData = static_cast<pointer*>(data);
const_cast:
//this can be used to remove or add the const to a variable.
const char* characters;
const_cast<char*>(characters);
reinterpret_cast:
//this cast is dangerous since it turns one type directly into another.
struct S1 { int a; } s1;
int* p1 = reinterpret_cast<int*>(&s1);
Copyright © 2021 Codeinu
Forgot your account's password or having trouble logging into your Account? Don't worry, we'll help you to get back your account. Enter your email address and we'll send you a recovery link to reset your password. If you are experiencing problems resetting your password contact us