static_cast
将一个值以符合逻辑的方式转型,如float和int之间的转换,如:
float x;
int y=static_cast<x>;
dynamic_cast
将多态的类型向下转型,如
class B : public A { ... };
void f(B* pb)
{
A* pa = dynamic_cast<A*>(pb);//将指向类B的指针转换为指向其父类A的指针
}
还有2个不常用的,知道就行了
const_cast
用于常量和非常量转换
reinterpret_cast
有实际编译器定义其行为,如用于2个不相关的类的转换,一般会带来不可移植和不安全性
#include <iostream.h>
void main()
{
int Weekday;
cout<<"今天星期几?";
cin>>Weekday;
switch(Weekday);
{
case 0: cout<<"Sunday"<<endl;break;
case 1: cout<<"Monday"<<endl;break;
case 2: cout<<"Tuesday"<<endl;break;
case 3: cout<<"Wednesday"<<endl;break;
case 4: cout<<"Thursday"<<endl;break;
case 5: cout<<"Friday"<<endl;break;
case 6: cout<<"Satreday"<<endl;break;
default:
cout<<"表示星期几的数必须在0~6之间!"<<endl;break;
}
}
我是按书抄下来的,以上的程序出了错,是错了哪里呢,它有16个错误和1个警告!