我是一个初学者,在研究一个程序,但是对于类中结构体的调用不明白,使得程序出了错误,请高手+好心人指点迷津~
gene::gene()
{
ifstream inf("data52");
if(!inf)
{
cout<<"Error open file!"<<endl;
return;
}
for(int i=0;i<vnum;i++)
{
if(quest.joint[i].v_model==0)
{
inf>>xmax[i];inf>>xmin[i];
xmax[i]*=rad;xmin[i]*=rad;
}
else
{
inf>>xmax[i];inf>>xmin[i];
}
}
inf.close();
sumfit=0.0;
//s=int(PopSize*0.08);
}声明函数中~:
class question
{
struct jointpara
{
double ang;
double a;
double d;
double x;
int v_model;
}joint[vnum];
public:
double fitness;
void CalculateFitness();
question();
virtual ~question();
double vx[vnum]; private:
void ObjectMatrix();
void PMatrixMPLMatrix(double[][3],double[],double[]);
void PTransfromMatrix(int,double[]);
void RTransformMatrix(int,double[][3]);
void RMatrixMPLMatrix(double[][3],double[][3],double[][3]);
int index[pop_size];
double rc[3][3];
double rb[3][3];
double ra[3][3];
double pc[3];
double pb[3];
double pa[3];
double ca[vnum];
double sa[vnum];
double obp[3];
double obr[3][3];
};
调试后,会出现错误:
error C2248: 'joint' : cannot access private member declared in class 'question'
question.h(25) : see declaration of 'joint'#endif
gene::gene()
{
ifstream inf("data52");
if(!inf)
{
cout<<"Error open file!"<<endl;
return;
}
for(int i=0;i<vnum;i++)
{
if(quest.joint[i].v_model==0)
{
inf>>xmax[i];inf>>xmin[i];
xmax[i]*=rad;xmin[i]*=rad;
}
else
{
inf>>xmax[i];inf>>xmin[i];
}
}
inf.close();
sumfit=0.0;
//s=int(PopSize*0.08);
}声明函数中~:
class question
{
struct jointpara
{
double ang;
double a;
double d;
double x;
int v_model;
}joint[vnum];
public:
double fitness;
void CalculateFitness();
question();
virtual ~question();
double vx[vnum]; private:
void ObjectMatrix();
void PMatrixMPLMatrix(double[][3],double[],double[]);
void PTransfromMatrix(int,double[]);
void RTransformMatrix(int,double[][3]);
void RMatrixMPLMatrix(double[][3],double[][3],double[][3]);
int index[pop_size];
double rc[3][3];
double rb[3][3];
double ra[3][3];
double pc[3];
double pb[3];
double pa[3];
double ca[vnum];
double sa[vnum];
double obp[3];
double obr[3][3];
};
调试后,会出现错误:
error C2248: 'joint' : cannot access private member declared in class 'question'
question.h(25) : see declaration of 'joint'#endif
{
public:
struct jointpara
中间加一个public,不加的话,类里面默认的是私有的!