C++学习笔记29:运行期型式信息2

时间:2017-01-04 23:30:38   收藏:0   阅读:173

static_cast

静态转型的用途

静态转型的问题

const_cast

常量转型的目的

 

常量转型的问题

例子:

#include <iostream>

class ConstCastTest
{
public:
    void SetNum(int num) { _num = num; }
    void PrintNum() const;
private:
    int _num;
};

void ConstCastTest::PrintNum() const
{
    //临时取消常量约束,修改目标对象的内容
    //this指向const ConstCastTest*,指向常对象的指针
    const_cast<ConstCastTest*>(this)->_num--;
    std::cout << _num;
}

reinterpret_cast

复诠转型的目的

复诠转型的问题

例子:

#include <iostream>
using namespace std;

int f(void *p)
{
    unsigned int n = reinterpret_cast<unsigned int>(p);
    return n;
}

int main()
{
    int a[8] = { 1,2,3,4,5,6,7,8 };
    int n = f(a);
    cout << n << endl;
}

 

原文:http://www.cnblogs.com/hujianglang/p/6250401.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!