请问如何在构造函数中初始化枚举类型的成员?

mmjj2009 2011-02-11 05:25:49


enum language
{
cpp=1,
java,
delphi,
csharp
};

class se
{
private:
language m_language;
public:
se(language lg) //这个构造函数给于值了,但我也许不想赋值呢,想给个0代表没决定呢?
{
m_language = lg;
}
se(){} //默认构造函数怎么办,怎么赋值?
};

...全文
360 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪人2015 2011-02-12
  • 打赏
  • 举报
回复
初始化成员列表
hhh_hao 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jingtianwen 的回复:]
引用 3 楼 iambic 的回复:
在languge里加一项dumb,专门用来表示未初始化。话说回来,未初始化的情况都应该避免使用。


同意
[/Quote]

就这样办
欣客 2011-02-12
  • 打赏
  • 举报
回复
Test(Enum c=Default):choice(c)
{
}
这个比较好,没有传参,初始化就是你定义的enum,传参就是你传进来的参数。

例如:
这个是函数的性质。
比如说fun(int n = 0)
可以调用fun() ,也可以fun(5) 都可以调用fun(int n = 0)这个函数。
wyfwx 2011-02-12
  • 打赏
  • 举报
回复
language有定义的值从 cpp开始
modaoshi3002 2011-02-11
  • 打赏
  • 举报
回复

enum language
{
cpp=1,
java,
delphi,
csharp
};

class se
{
private:
language m_language;
public:
se(language lg) //赋值,保证每个se的对象都有初始化
{
m_language = lg;
}
//se(){} //不使用默认构造函数,必须手动赋值
};
竞天问 2011-02-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 iambic 的回复:]
在languge里加一项dumb,专门用来表示未初始化。话说回来,未初始化的情况都应该避免使用。
[/Quote]

同意
qq120848369 2011-02-11
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

typedef enum
{
Default=1,A,B,C
}Enum;

class Test
{
public:
Test(Enum c=Default):choice(c)
{
}

private:
Enum choice;
};

int main()
{
Test a;

return 0;
}
pengzhixi 2011-02-11
  • 打赏
  • 举报
回复
额,se():m_language(cpp){}
iambic 2011-02-11
  • 打赏
  • 举报
回复
在languge里加一项dumb,专门用来表示未初始化。话说回来,未初始化的情况都应该避免使用。
昵称很不好取 2011-02-11
  • 打赏
  • 举报
回复
se():m_language(some_value){}
或se(language lg = some_value):m_language(some_value){}
上善若水邻 2011-02-11
  • 打赏
  • 举报
回复

se(){} //默认构造函数怎么办,怎么赋值?
se():m_language(0){}//这样试试

64,683

社区成员

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

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