我在学c++,遇到了问题我不会!

hurryupxo 2003-10-14 11:30:38
麻烦各位写一强制转换的例子出来,我对这个强制转有点不会?
还有[]是什么意思呢?有什么作用?
...全文
35 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
panzhaoping 2003-10-14
  • 打赏
  • 举报
回复
up
helloair 2003-10-14
  • 打赏
  • 举报
回复
using namespace std;
Hot_Forever 2003-10-14
  • 打赏
  • 举报
回复
switch(Weekday)后面的分号去掉
Hot_Forever 2003-10-14
  • 打赏
  • 举报
回复
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个不相关的类的转换,一般会带来不可移植和不安全性




hurryupxo 2003-10-14
  • 打赏
  • 举报
回复
#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个警告!
zhengguoshan 2003-10-14
  • 打赏
  • 举报
回复
up
linchuangfeng 2003-10-14
  • 打赏
  • 举报
回复
switch(weekday);后面的“;"要去掉经常都会因为一个错误引发很多错误的,要多加注意!
hurryupxo 2003-10-14
  • 打赏
  • 举报
回复
多谢各位了今天总算有收获!有空的话请各位饮荼!!
awcoin 2003-10-14
  • 打赏
  • 举报
回复
多一个分号
switch(Weekday);
分号去掉ok
wxm5211 2003-10-14
  • 打赏
  • 举报
回复
#include<iostream.h>
class A{
private:int i;
public:A(int x)
{i=x;}
void show(){cout<<"a="<<a<<endl;}
}

operator int(){return i;}//强制转换函数
}

voi main()
{int a;
A p(5);
a=p;//调用operator
p.show();}
Wolf0403 2003-10-14
  • 打赏
  • 举报
回复
楼主,换本新点的书吧。新的标准 C++ 写法:

#include <iostream>
using namespace std;

int main()
{
int Weekday;
cout<<"今天星期几?";
cin>>Weekday;
switch(Weekday);
{
case 0: cout<<"Sunday"<<endl;break;
//...
default:
cout<<"表示星期几的数必须在0~6之间!"<<endl;break;
}
}
smokefire 2003-10-14
  • 打赏
  • 举报
回复
同意楼上的看法
houdy 2003-10-14
  • 打赏
  • 举报
回复
to helloair(老婆,我只要十块钱):
在这里并不需要using namespace std.
这里#include的是旧的C++库,而不是C++标准库,旧的C++库是没有命名空间这个概念的,所以不需要使用命名控件,C++标准库使用了std这个命名控件,所以使用的时候需要:using namespace std (这个意思就是使用std这个命名空间)
注:C++标准库是没有.h后缀的。
Hot_Forever 2003-10-14
  • 打赏
  • 举报
回复
是一个运算符
如在数组a用到a[10],就把下标为10的那个数取了出来
hurryupxo 2003-10-14
  • 打赏
  • 举报
回复
完全明白了!哪么[ ]是什么意思呢?有什么作用?
chenkuizhong 2003-10-14
  • 打赏
  • 举报
回复
#include <iostream.h>
void main()
{
float i=2.3;
int j;

j=(int)i; float型转换成int型,这应该也算强制类型转换吧

cout<<i;
cout<<j;

}




把switch(Weekday);后的;号去了就行了
zoezinsser 2003-10-14
  • 打赏
  • 举报
回复
switch(Weekday)后面的分号去掉

不然,{}执行体不明确!

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧