小白教你学习c++(6)几种常见的类型转换
来源:互联网 发布:矢仓枫子 知乎 编辑:程序博客网 时间:2024/06/05 15:47
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
}
- 小白教你学习c++(6)几种常见的类型转换
- 几种常见类型的转换
- 几种c++常见的类型转换
- 【STL】String的几种常见的类型转换
- 学习笔记:演讲结束的几种常见类型
- C中常见的类型转换
- 类型的几种转换
- Qt 常见的几种数据类型转换
- 黑马程序员几种常见的转换类型特点及用法总结
- drupal form 创建几种常见的类型(例子)
- 几种常见类型Cache的实现
- 常见软件的几种主要类型
- STL几种常见类型的比较
- 几种常见的shell类型
- 常见的几种事件类型
- 几种常见的DVD光盘类型
- 常见的几种异常类型Exception
- 几种常见的ICMP报文类型
- Java菜鸟学习日记25
- java web开发(四) 接口开发补坑1
- android bionic linker debug enable
- 视频笔记
- ? 枚举类实现接口
- 小白教你学习c++(6)几种常见的类型转换
- Qt Socket 多线程操作
- 【BFS+状压】HDU_5025_ Saving Tang Monk
- ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
- String,StringBuffer与StringBuilder的区别
- 树链剖分
- 【转】前端框架基础:Babel & package.json & npm & nodemon
- 一位数组>>>>>>>>>>约瑟夫环
- 树状数组实现 区间修改+区间查询