小白教你学习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
}
通过标识符 核心;程序员再数据类型转换是,要清楚的明白于神魔类型转换成什么类型!
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++常见的类型转换
- C++中常见类型转换
- C++学习小结之数据类型及转换方式
- C++学习笔记:类型转换dynamic)cast和reinterpret_cast
- C++学习笔记8——新的类型转换
- c++学习-类型转换运算符
- C++中将string类型转换为int, float, double类型 主要通过以下几种方式:
- 有章法的学习c++(5)类型转换(二)
- POCO C++库学习和分析 -- 数据类型转换
- C++入门学习:类型转换
- 黑马程序员几种常见的转换类型特点及用法总结
- C++几种转换类型的区别
- C++中int、string等常见类型转换
- C++ 学习(一)类型转换
- C++ 学习笔记(4)表达式、运算符、类型转换(static_cast、const_cast、reinterpret_cast、dynamic_cast)
- c/c++语言数据类型转换的方式及常见问题【绝笔整理】
- C++中关于类型转换的学习记录
- C++学习之类型转换带来的问题
- iOS学习之——一些常见的数据类型的转换
- C++中int、double、float。string等常见类型转换