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

pro_ling 2012-04-19 12:00:45

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

但是我没用到类啊。求解,虽然这个问题有点钻牛角尖,也许有点弱智...但小弟希望大神们能指点一二
...全文
147 点赞 收藏 8
写回复
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;
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告