这个问题...结构体内定义布尔变量

pro_ling 2012-04-19 12:00:45

我想在结构体中定义一个布尔变量,但是一直不能给它初始化一个值(这个怎么说呢,就是struct{bool i = false})。这样为什么不行啊。编译连接的时候提示 only static const integral data members can be initialized within a class.

但是我没用到类啊。求解,虽然这个问题有点钻牛角尖,也许有点弱智...但小弟希望大神们能指点一二
...全文
901 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2012-04-19
  • 打赏
  • 举报
回复
1. 楼主用的应该是C++的编译器
2. 楼主是不是从Java转过来的?在Java中那样的写法是可以的,但C/C++不可以。

wenhong609 2012-04-19
  • 打赏
  • 举报
回复
这里你必须懂得struct和class关键字在C++中的区别:两个基本一样,除了声明的成员的默认访问控制。struct默认的访问控制是public,而class是private,其余都是一样。所以可以除了这个不同外,很多时候你就他们理解为一样。因此,不能在结构体/类中直接声明并初始化。只有const static成员变量能在其中声明定义。
西山小月 2012-04-19
  • 打赏
  • 举报
回复
把賦值的操作去掉!
一叶之舟 2012-04-19
  • 打赏
  • 举报
回复
struct stu

stu()
{i=false;};
bool i;

在构造函数中初始化。
赵4老师 2012-04-19
  • 打赏
  • 举报
回复
static变量的默认值为false、0、NULL
lkxd2011 2012-04-19
  • 打赏
  • 举报
回复
只可以在结构体外面赋值~~
帅得不敢出门 2012-04-19
  • 打赏
  • 举报
回复
在构造函数的初始化列表中初始化。

RabbitLBJ 2012-04-19
  • 打赏
  • 举报
回复
C++里面只能在构造函数里面给变量赋值

如果想像那楼那样赋值,则i必须是一个static const int的变量
比如
struct{
static const int i = 11;

65,186

社区成员

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

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