一.隐式转换
1)精度低转高,sigend转unsigend
2)数值0,会转为为指针. 数组名会转换为首地址.
3)bool转换 。0为false.其他为true.-1也是true...
4)非const转为const.
5)标准库定义的转换.
while(cin>>s)
二。显示转换。
1)最常用的static_cast() 可以代替任何隐式转换。
2)dynamic_cast 运行时识别指针或引用所指的对象
3)const_cast ,添加或删除const特性。
4)reinterpret_cast ,操作数的位模式提供较低层次的重新解释。
#include <stdio.h>
#include <iostream>
#include <sstream>
using namespace std; //二。显示转换。
//
//1)最常用的static_cast 可以代替任何隐式转换。
//3)const_cast ,添加或删除const特性。 //2)dynamic_cast 运行时识别指针或引用所指的对象(记得后面要补充例子)
//4)reinterpret_cast ,操作数的位模式提供较低层次的重新解释。(记得后面要补充例子) int main()
{
//static_cast
char a='a';
int b=static_cast<int>(a);
cout<<b<<endl; //string 的万能转换
string str="3.5";
stringstream ss;
ss<<str;
double dou;
ss>>dou;
cout<<dou<<endl; //const_cast,把const 的指针转为非const.那么就可以用新指针 修改 数据了.
const int* cint=new int();
int* cint2= const_cast<int*>(cint);
*cint2 =;
cout<<*cint<<endl; return ;
}