佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1499|回复: 2

为何不能在C++里设定初值?

[复制链接]
发表于 7-5-2007 09:33 AM | 显示全部楼层 |阅读模式
小弟有一支program经简化之後,如下:
class aaa {
       public :
           aaa() { };
       private :
           static int abc[] = {0, 7, 3, 5, 1, 6, 2, 4};
}

int main(int argc, char **argv)
{
       aaa a;
}      
设定初值总是会有下面两行错误
show.cpp:5: error: a brace-enclosed initializer is not allowed here before '{' token

show.cpp:5: error: invalid in-class initialization of static data member of non-integral type `int[]'

compiler 是gcc 3.4.3, os 是rhel AS 4.0
请各位大大指教.
回复

使用道具 举报


ADVERTISEMENT

发表于 8-5-2007 08:46 AM | 显示全部楼层
经过更改的code:
class aaa {
       public :
           aaa() { };
       private :
           static int abc[] ;
};   //记得要在 class 的 } 之后加上一个 ; 要不然就会有问题。  

int aaa::abc[] = {0, 7, 3, 5, 1, 6, 2, 4};  //static data member has to be initialized this way

int main(int argc, char **argv)
{
       aaa a;
}
回复

使用道具 举报

 楼主| 发表于 8-5-2007 11:29 AM | 显示全部楼层

回复 #2 jackyboy05 的帖子

果然可以,谢谢!
问题太粗浅了,因为偶的C++和Java都是在网上边看边学的,每次都
是百度,google找不到就来佳礼问,找得到的问题必是有人问过,像
这种太浅的反而找不到。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-9-2025 08:50 AM , Processed in 0.112441 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表