急:请教一个有关常数据成员的问题
小弟是一个初学者,遇到一个问题自己一直不能解决,希望哪位高手能够帮助我。我定义了一个类
class A
{public:
const int L,M;
A(int, int);
double F[L][M],P[L][M];
………………………………
private:
double Q[L][M];
…………………………
};
A::A(int i, int j):L(i),M(j){}
同时,又有:
class B:private A
{
public:
B(int i, int j):A(i, j){}
………………
public:
double QQ[L][M];
………………
};
这两个类是分别写在两个文件上的。同时,class A和class B分别写在两个头文件中(A.h&B.h),成元函数分别写在两个cpp文件中(A.cpp&B.cpp),且在开头分别对应#include "A.h", #include "B.h"
然后:
#include "A.cpp"
#include "B.cpp"
main
{
B BM(20,30);
…………………… //定义,调用成元函数和数据
}
但是在我complie 的时候却出现:
error C2327: 'A::L' : member from enclosing class is not a type name, static, or enumerator
……\A.h(17) : error C2065: 'L' : undeclared identifier
……\A.h(17) : error C2057: expected constant expression
……\A.h(17) : warning C4200: nonstandard extension used : zero-sized array in struct/union
……\A.h(17) : error C2327: 'A::M' : member from enclosing class is not a type name, static, or enumerator
……\A.h(17) : error C2065: 'M' : undeclared identifier
……\A.h(17) : error C2057: expected constant expression
……\A.h(17) : error C2229: class 'A' has an illegal zero-sized array
……\A.h(17) : warning C4200: nonstandard extension used : zero-sized array in struct/union
这是怎么回事呢??希望哪位高手能尽快解答!不胜感激!