C++:为什么报错 C++的类中不能定义数组吗?

#include<iostream>
using namespace std;
class DisjSets{
void unionElements(int *root1,int *root2);
void show();
int find(int *x);
int s[]={5,-2,1,4,-3,4,4,6,1};
int main()
{
int set1,set2,set3;
DisjSets *ds=new DisjSets();
int param1=2;
return 0;
}
};
void DisjSets::unionElements(int *root1,int *root2){
}
void DisjSets::show(){
}
为什么不行呢?每个对象难道只能有个空数组吗?有什么说道还是就是这么规定的呢?:)

1、c++类中不能初始化变量,所以下面的一句是错误的

int s[]={5,-2,1,4,-3,4,4,6,1};
出错信息如下:
leos@DingWL-WS:tmp$ g++ a.cpp
a.cpp:7:9: error: a brace-enclosed initializer is not allowed here before ‘{’ token
a.cpp:7:29: error: ISO C++ forbids initialization of member ‘s’ [-fpermissive]
a.cpp:7:29: error: making ‘s’ static [-fpermissive]
a.cpp:7:29: error: invalid in-class initialization of static data member of non-integral type ‘int [0]’
leos@DingWL-WS:tmp$

2、main函数不能放在类中
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-07
C++ 类中可以定义数组 但是不能给数组初始化
只能声明变量 给类中的成员变量付初始值的话要放到 构造函数 中

并且。。。。 你的main函数写到类里了?????
相似回答