真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++中的新式類型轉(zhuǎn)換-創(chuàng)新互聯(lián)

文章目錄
  • 前言
  • 一、static_cast
  • 二、const_cast
  • 三、reinterpret_cast
  • 四、dynamic_cast
  • 總結(jié)

為蓬安等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及蓬安網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、蓬安網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
前言

本篇文章給大家介紹C++中的幾種新式類型轉(zhuǎn)換。

一、static_cast

static_cast用法:
1.用于基本類型間的轉(zhuǎn)換

int a = 67;

    char b = static_cast(a);//true

    cout<< a<< endl;
    cout<< b<< endl;

2.不能用于基本類型指針間的轉(zhuǎn)換

int a = 67;

    char b = static_cast(a);//true

    cout<< a<< endl;
    cout<< b<< endl;

    int* p = &a;
    char* p1 = static_cast(p);//err

3.用于有繼承關(guān)系對象之間的轉(zhuǎn)換和類指針之間的轉(zhuǎn)換

#include#includeusing namespace std;

class Test
{public:
    Test()
    {cout<< "Test()"<< endl;
    }
    ~Test()
    {cout<< "~Test()"<< endl;
    }
    void print()
    {cout<< "this is Test()"<< endl;
    }
};

class Test1 :public Test
{public:
    Test1()
    {cout<< "Test1()"<< endl;
    }
    ~Test1()
    {cout<< "~Test1()"<< endl;
    }
    void printf_string()
    {cout<< "string"<< endl;
    }
};


int main()
{Test1 t1;

    Test t2 = static_cast(t1);

    return 0;
}
二、const_cast

const_cast可以清除變量的只讀熟悉。
注意:強制轉(zhuǎn)換的目標(biāo)類型必須是指針或者引用。
此時a不能賦值為其他的數(shù)值,因為a是一個只讀變量

const int& a = 10;

    a = 20;//err

使用const_cast清除a的只讀屬性

const_cast(a) = 20;//true
三、reinterpret_cast

用于指針類型間的強制類型轉(zhuǎn)換

char a = 10;
char* p = &a;
int* p1 = reinterpret_cast(p);

用于整數(shù)和指針的強制類型轉(zhuǎn)換

int a = 0x220000;

int* p = reinterpret_cast(a);
四、dynamic_cast

用于有繼承關(guān)系的類指針間的轉(zhuǎn)換
需要有虛函數(shù)的支持

class Test
{public:
    Test()
    {cout<< "Test()"<< endl;
    }

    virtual void print()
    {cout<< "hello"<< endl;
    }

    ~Test()
    {cout<< "~Test()"<< endl;
    }
};

class Test1 : public Test
{public:
    Test1()
    {cout<< "Test1()"<< endl;
    }

    void print()
    {cout<< "hello world"<< endl;
    }
    
    ~Test1()
    {cout<< "~Test1()"<< endl;
    }
};

Test1 t2;
Test1 *t = &t2;
Test *t1 = dynamic_cast(t);
總結(jié)

這四個強制類型轉(zhuǎn)換是經(jīng)常使用的,希望大家掌握。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


分享題目:C++中的新式類型轉(zhuǎn)換-創(chuàng)新互聯(lián)
文章位置:http://weahome.cn/article/pgdos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部