我已经定义了一个类:CPoint我想搞成动态数组
CPoint *AM;
AM=new CPoint[4];编译的时候报错,请教达人应该怎么写?
CPoint *AM;
AM=new CPoint[4];编译的时候报错,请教达人应该怎么写?
解决方案 »
- 求助,无法删除数据库记录
- 如何右手坐标系中3D坐标。。变成一般的屏幕2D坐标?
- 在ATL里如何改变光标的形状?
- 在CFilefind类中,如何查找指定目录下的文件,而非当前目录?(在线)
- 谁有或能提供AUTOCAD的“.shx” “.shp” 的文件格式的资料,急用
- SOCKET socket(int af,int type,int protocol)返回值的疑问
- 有关FileMapping的问题,恳请指教,万分感谢!!
- 上位机用udp和单片机连接 的问题
- 这个问题真的这么难吗?(回答正确一定给分!)
- 都是Unicode惹的祸
- 我的多文档(MDI)程序中设置了一个关联文件类型.viw,请问在点击*.viw文件后,会触发我程序的什么事件?谢谢大家!!!!
- CListCtrl新插入的item是在前面还是在后面?
class CDegree
{
public:
int D,M,S;
void Cout();
CDegree()
{
D=0;
M=0;
S=0;
};
CDegree(int x,int y,int z)
{
D=x;
M=y;
S=z;
};
//重载运算符
CDegree(CDegree &com)
{
D=com.D;
M=com.M;
S=com.S;
};
CDegree operator+(CDegree);
CDegree operator-(CDegree);
CDegree operator*(float);
CDegree operator/(int);
void operator=(CDegree);
bool operator<=(CDegree);
};void CDegree::Cout()
{
cout<<D<<M<<S;
}CDegree CDegree::operator + (CDegree d)
{
int i=0,j=0,k=0; i=i+S+d.S;
if (i>=60)
{
i=i-60;
j++;
}; j=j+M+d.M;
if (j>=60)
{
j=j-60;
k++;
}; k=k+D+d.D; return CDegree(i,j,k);
}CDegree CDegree::operator - (CDegree d)
{
int i=0,j=0,k=0; i=i+S-d.S;
if (i<0)
{
i=i+60;
j--;
} j=j+M-d.M;
if (j<=0)
{
j=j+60;
k--;
} k=k+D-d.D; return CDegree(i,j,k);
}CDegree CDegree::operator * (float a)
{
int i=0,j=0,k=0; i=i+(int)floor(S*a);
j=j+(int)i/60;
i=i%60; j=j+(int)floor(M*a);
k=k+(int)j/60;
j=j%60; k=k+(int)floor(D*a); return CDegree(i,j,k);
}CDegree CDegree::operator / (int a)
{
int i=0,j=0,k=0; i=(int)D/a;
j=D%a*60+M;
k=k+j%60*60+S;
j=(int)j/a;
k=(int)k/a; return CDegree(i,j,k);
}void CDegree::operator = (CDegree d)
{
D=d.D;
M=d.M;
S=d.S;
}bool CDegree::operator <= (CDegree d)
{
if (D<d.D)
return 1;
else
//{
if (D=d.D)
//{
if (M<d.M)
return 1;
else
//{
if (M=d.M)
//{
if (S<d.S)
return 1;
else
//{
if (S=d.S)
return 1;
else
return 0;
//};
//};
else return 0;
//};
//};
else return 0;
//}
}//定义坐标点类class CPoint
{
public:
CDegree Angle,DAngle,CorrectAngle,FixAngle;
float D,DeltaX,DeltaY,DX,DY,CorrectX,CorrectY,X,Y;
CPoint(CDegree a,float Distance)
{
Angle=a;
D=Distance;
}
};
class CDegree
{
public:
int D,M,S;
void Cout();
CDegree()
{
D=0;
M=0;
S=0;
};
CDegree(int x,int y,int z)
{
D=x;
M=y;
S=z;
};
//重载运算符
CDegree(CDegree &com)
{
D=com.D;
M=com.M;
S=com.S;
};
CDegree operator+(CDegree);
CDegree operator-(CDegree);
CDegree operator*(float);
CDegree operator/(int);
void operator=(CDegree);
bool operator<=(CDegree);
};void CDegree::Cout()
{
cout<<D<<M<<S;
}CDegree CDegree::operator + (CDegree d)
{
int i=0,j=0,k=0; i=i+S+d.S;
if (i>=60)
{
i=i-60;
j++;
}; j=j+M+d.M;
if (j>=60)
{
j=j-60;
k++;
}; k=k+D+d.D; return CDegree(i,j,k);
}CDegree CDegree::operator - (CDegree d)
{
int i=0,j=0,k=0; i=i+S-d.S;
if (i<0)
{
i=i+60;
j--;
} j=j+M-d.M;
if (j<=0)
{
j=j+60;
k--;
} k=k+D-d.D; return CDegree(i,j,k);
}CDegree CDegree::operator * (float a)
{
int i=0,j=0,k=0; i=i+(int)floor(S*a);
j=j+(int)i/60;
i=i%60; j=j+(int)floor(M*a);
k=k+(int)j/60;
j=j%60; k=k+(int)floor(D*a); return CDegree(i,j,k);
}CDegree CDegree::operator / (int a)
{
int i=0,j=0,k=0; i=(int)D/a;
j=D%a*60+M;
k=k+j%60*60+S;
j=(int)j/a;
k=(int)k/a; return CDegree(i,j,k);
}void CDegree::operator = (CDegree d)
{
D=d.D;
M=d.M;
S=d.S;
}bool CDegree::operator <= (CDegree d)
{
if (D<d.D)
return 1;
else
//{
if (D=d.D)
//{
if (M<d.M)
return 1;
else
//{
if (M=d.M)
//{
if (S<d.S)
return 1;
else
//{
if (S=d.S)
return 1;
else
return 0;
//};
//};
else return 0;
//};
//};
else return 0;
//}
}//定义坐标点类class CPoint
{
public:
CDegree Angle,DAngle,CorrectAngle,FixAngle;
float D,DeltaX,DeltaY,DX,DY,CorrectX,CorrectY,X,Y;
CPoint(CDegree a,float Distance)
{
Angle=a;
D=Distance;
}
};
应该有个CPoint();
AM=new CPoint[4];
没有指定参数,无法构造。
AM = new CPoint(a,d) ;这样是可以的
如果不实现缺省CPoint(),我就不知道该怎样new了
但你要搞清楚数组指针和指针数组的概念你这个 可以这样CPoint* AM[4];
for(int i=0;i<4;++i)
{
AM[i] = new CPoint(a,d);
}