注册 登录
编程论坛 C++教室

枚举类的强制转换 是什么

huang1938120 发布于 2013-02-26 10:38, 3690 次点击
在此感谢  枚举类的强制转换 是什么  求详解

[ 本帖最后由 huang1938120 于 2013-2-26 11:50 编辑 ]
13 回复
#2
peach54602013-02-26 11:04
完全看不懂楼主在说什么
这就是所谓的代沟吗?
#3
huang19381202013-02-26 11:19
额   抱歉 是俺说错了  其实俺想说的事 枚举类强制转换   
#4
peach54602013-02-26 12:57
转成什么啊?INT?
我还是不懂你在说什么...
#5
wp2319572013-02-26 12:58
举例说明
#6
TonyDeng2013-02-26 13:01
枚举元素的类型不宜作除整数之外的类型理解,对此进行任何强制转型都是自找错误。
#7
huang19381202013-02-26 15:27
int main( )
{
    enum {here,dere,we,whork}what;
    what=here;
    cout<<what<<endl;
    getch( );
    return 0;
}
就这个 现在输出是here 但是如果我用强制转换 想输出we(不知道这样说合不合法)
 
算了 大侠们 你们写个枚举类的强制转换的小程序给俺 看看   多谢各位大侠
#8
peach54602013-02-26 15:44
以下是引用huang1938120在2013-2-26 15:27:25的发言:

int main( )
{
    enum {here,dere,we,whork}what;
    what=here;
    cout<<what<<endl;
    getch( );
    return 0;
}
就这个 现在输出是here 但是如果我用强制转换 想输出we(不知道这样说合不合法)
 
算了 大侠们 你们写个枚举类的强制转换的小程序给俺 看看   多谢各位大侠


这不是输出0吗?
是字符串here?
这也太凶残了吧?
#9
huang19381202013-02-26 15:45
回复 8楼 peach5460
呃  我知道 输出的是0   那如果强制转换 我想输出2   该怎么办  大神
#10
Susake2013-02-26 15:48
程序代码:
C版
#include <stdio.h>

int main() {
    float x;
    enum xx{o, t, w, th, f, s, su} q;
    q = t;
    x = (float)q;
    printf("%f\n", x);
    return 0;
}
C++版
#include <iostream>
using namespace std;

int main() {
    float x;
    enum xx{o, t, w, th, f, s, su} q;
    q = t;
    x = (float)q;
    cout<<x<<endl;
    return 0;
}
这里说明一下C++中枚举无论怎么强制转换输出的结构都是整数,真正强制转换的作用是给枚举类型赋值
#include <iostream>
using namespace std;

int main() {
    float x;
    enum xx{o, t, w, th, f, s, su} q;
    q = t;
    x = (int)3;
    cout<<x<<endl;
    return 0;
}
#11
Susake2013-02-26 15:48
我已经解释了,自己看吧
#12
huang19381202013-02-26 15:57
哦    原来如此  多谢各位大侠的指点 小弟明白了
#13
Susake2013-02-26 16:06
稍等,最后一句说错...给枚举赋值是在枚举结构的内部,但是无论如何输出的是整数没错

#include <iostream>
using namespace std;

int main() {
    float k;
    enum xx{o = 11, t, w, th, f, s, su} q;
    q = o;
    k = float(q);
    cout<<k<<endl;
    return 0;
}

只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
不小心对x直接赋值了,疏忽了,望见谅
#14
gezhongfeng2013-02-26 19:04
#include <iostream>
#include <conio.h>
using namespace std;
int main( )
{
    enum what{here,dere,we,whork};
    what w;
    w=here;
    w= (what)(here+2);
    cout<<w<<endl;
    getch( );
    return 0;
}
1