您好,登錄后才能下訂單哦!
C語言中經常可以見到一些強制類型轉化,主要是在變量名前加(類型)。而在c++中與c語言也有一些差異,C++中主要有四種強制類型轉化。
static_cast它的主要轉化是對于相關類型之間的轉化
int main()
{
float a = 1.2;
int b = static_cast<int>(a);
cout << b << endl;
getchar();
return 0;
}
2.reinterpret_cast它的主要轉化是對于不相關類型之間的轉化
int main()
{
int a = 1;
int *p = &a;
int b = reinterpret_cast<int>(p);
cout << b << endl;
getchar();
return 0;
}
3.const_cast 是解除const類型的變量,使之可以改變變量的值
int main()
{
volatile const int a = 1;
int *p = const_cast<int *>(&a);
*p = 2;
cout << a << endl;
getchar();
return 0;
}
4.dynamic_cast是動態轉化,它主要作用:1.只能用于含有虛函數的類 2.先檢查是否轉化成功,若成功轉化則轉換,若不能就返回0
class A
{
public:
int _a;
virtual void show()
{}
};
class B :public A
{
public:
int _b;
};
void test()
{
A a;
B b;
B *pb =dynamic_cast<B *>(&a);
cout << pb << endl;
}
int main()
{
test();
getchar();
return 0;
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。