您的位置:首页 > 编程语言 > C语言/C++

小白教你学习c++(6)几种常见的类型转换

2017-08-04 20:47 645 查看
c++的类型转换

通过标识符  核心;程序员再数据类型转换是,要清楚的明白于神魔类型转换成什么类型!

1、reinterprete<>()强制转换

2、static_cast<>()进行数值类型转换,c++编译器进行检查

3、dymanix_cast 动态数据类型转换,可以选择的

4、

void printbuf()

{ char *p1=NULL;

p1=const_cast<char*>(p1); //把只读选项去掉

char buf[]="nihao leoomn";

char *

}

void main()

{

double PI =3.1415926;

int num1 = (int)PI;   //C语言的类型转换

int num=static_cast<int>(IP);  //c++的静态类型转换

int num3 =IP;  //c语言中隐私类型转换的地方美军可以使用 

char *p1="hello"

int *p2 =null;

p2=reinterpret_cast<int*>(p1);

cout<<"p1;"<<p1<,endl;  //输出的是内容

cout<<"p2"<<p2<<endl;   //输出的是地址

return;

}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

dynamic_cast 类型转换

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//class animal

{

public:

virtual void cry()=0

}

class dog:public animal

{

public:

virtual cry()

{

cout <<"wangwang"<<endl;

}

void dohome()

{

cout<<"do home work"<<endl;

}

}

class cat:public animal

{

public:

virtual cry()

{

cout <<"miaomiao"<<endl;

}

 void dosometing()

{

cout<<"catch mice"<<endl;

}

}

void PlayObj(Animal*base)  //定义一个公共形式动作的接口

{

   base->cry();

Dog *pCat=dynamic_cast<Dog*>(base)   /如果是狗的话就执行这一条

{

pDog->dohome();

}

Cat *pCat=dynamic_cast<Cat*>(base)  //强制类型转换失败

{

pCat->catchmice();

}

/**********************************************{

class tree{};

tree c1;

       Animal *pBase=Null;

        pBase=&d1;  //相当于指针的引用

pBase =static_cast<Animal *>(&d1); //c++编译的时候进行检查

pBase= reinterPret_cast<Animal *>(&d1); //这个支持强制类型转换

playObj(&D1);

playObj(&c1);

}**********************************************/

}

void main()

{

Dog d1;  /如果是狗的话

cat c1;

 playObj(&c1);//PlayObj(Animal*base)      d1 是base的指针的别名base->cry() ==dl->cry()

//所以会打印出旺旺

playObj(&c1);  //打印miaomaio

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: