社区
C++ 语言
帖子详情
error C2228: left of '.y' must have class/struct/union错误大虾指点?
donkeydonkey
2008-10-30 12:39:25
今天写了个程序编译时出现error C2228: left of '.y' must have class/struct/union错误这个是什么意思?请大虾指点,同种类型的情况我又取编了个小点的程序测试却没有发现错误这是怎么回事??
愁?谢谢同志们啊!
我用的是vs2005
...全文
3867
11
打赏
收藏
error C2228: left of '.y' must have class/struct/union错误大虾指点?
今天写了个程序编译时出现error C2228: left of '.y' must have class/struct/union错误这个是什么意思?请大虾指点,同种类型的情况我又取编了个小点的程序测试却没有发现错误这是怎么回事?? 愁?谢谢同志们啊! 我用的是vs2005
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mqiqe
2008-10-30
打赏
举报
回复
语法错误.
maying_11
2008-10-30
打赏
举报
回复
.成员操作符号 他的左边必须是类对象,或结构对象.
我是这么认为的.不知道对不对
HelloDan
2008-10-30
打赏
举报
回复
代码片段没有,怎么查啊?
Fighting Horse
2008-10-30
打赏
举报
回复
是不是指针,应该写成->
liubuweiright
2008-10-30
打赏
举报
回复
语法错误.
chihz3800
2008-10-30
打赏
举报
回复
->这个错误我也常犯
arong2004
2008-10-30
打赏
举报
回复
楼上正解!!!!
The_eagles
2008-10-30
打赏
举报
回复
POINT *Points 你这里的Points是个指针啊。
当然是Points[i]->y
donkeydonkey
2008-10-30
打赏
举报
回复
谢谢各位!好像这些都不是给大家看下代码呵
#include "stdafx.h"
#include "conio.h"
#include "math.h"
#include "stdlib.h"
#define MAX_EDGE 500
#define MAX_DATE 500
#define MAX_TRIA 500
long iConvexNum=0;
long DATA_NUM=0;
struct POINT
{ float x;
float y;
};
typedef struct
{ POINT point[3];
}TRIANGLE;
typedef struct
{ POINT EdgePoint1;
POINT EdgePoint2;
}EDGE;
bool TriangleInCircle(float xp, float yp, float x1, float y1, float x2, float y2, float x3, float y3,float *xc, float *yc, float *r)
{
bool Ret;
float eps;
float m1;
float m2;
float mx1;
float mx2;
float my1;
float my2;
float dx;
float dy;
float rsqr;
float drsqr;
eps = 0.000001;
Ret = false;
if (fabs(y1-y2)<eps&&fabs(y2-y3)<eps)
{
return Ret;
}
if ( fabs(y2-y1)<eps )
{
m2=-(x3-x2)/(y3-y2);
mx2=(x2+x3)/2;
my2=(y2+y3)/2;
*xc=(x2+x1)/2;
*yc=m2*(*xc-mx2)+my2;
}
else if ( fabs(y3-y2)<eps )
{
m1=-(x2-x1)/(y2 - y1);
mx1=(x1+x2)/2;
my1=(y1+y2)/2;
*xc=(x3+x2)/2;
*yc= m1 * ((*xc) - mx1) + my1;
}
else
{
m1=-(x2-x1)/(y2-y1);
m2=-(x3-x2)/(y3-y2);
mx1=(x1+x2)/2;
mx2=(x2+x3)/2;
my1=(y1+y2)/2;
my2=(y2+y3)/2;
*xc=(m1*mx1-m2*mx2+my2-my1)/(m1-m2);
*yc=m1*((*xc)-mx1)+my1;
}
dx=x2-(*xc);
dy=y2-(*yc);
rsqr=dx*dx+dy*dy;
*r=sqrt(rsqr);
dx=xp-(*xc);
dy=yp-(*yc);
drsqr=dx*dx+dy*dy;
if (drsqr<= rsqr )
return true;
else
return false;
}
void ConvexHullTriangle(EDGE *Edge,TRIANGLE *Triangle,POINT *Points)
{
long TriNum;
long EdgNum;
for(long i=0;i<iConvexNum;i++)
{
long j=i+1;
long k=i+2;
if(iConvexNum<=3) break;
if(i==iConvexNum-2)
{
k=0;
}
if(i==iConvexNum-1)
{
j=0;
k=1;
}
bool test=true;
for(long r=0;r<iConvexNum;r++)
{
if(r==i||r==j||r==k) continue;
test=TriangleInCircle(Points[r].x ,Points[r].y, Points[i].x, Points[i].y, Points[j].x, Points[j].y, Points[k].x, Points[k].y,float *xc, float *yc, float *r)
if(test==true) break;
}
//如果外接圆不包含凸包上其他点。
if(test==false)
{
//形成三角形,加入三角形数组。
Triangle[TriNum].point[0].x=Points[i].x;
Triangle[TriNum].point[0].y=Points[i].y;
Triangle[TriNum].point[1].x=Points[j].x;
Triangle[TriNum].point[1].y=Points[j].y;
Triangle[TriNum].point[2].x=Points[k].x;
Triangle[TriNum].point[2].y=Points[k].y;
TriNum=TriNum+1;
//加入不重复的边。
if(e==0)
{
Edge[EdgNum+0].EdgePoint1.x=Points[i].x;
Edge[EdgNum+0].EdgePoint1.y=Points[i].y;
Edge[EdgNum+0].EdgePoint2.x=Points[j].x;
Edge[EdgNum+0].EdgePoint2.y=Points[j].y;
Edge[EdgNum+1].EdgePoint1.x=Points[j].x;
Edge[EdgNum+1].EdgePoint1.y=Points[j].y;
Edge[EdgNum+1].EdgePoint2.x=Points[k].x;
Edge[EdgNum+1].EdgePoint2.y=Points[k].y;
Edge[EdgNum+2].EdgePoint1.x=Points[k].x;
Edge[EdgNum+2].EdgePoint1.y=Points[k].y;
Edge[EdgNum+2].EdgePoint2.x=Points[i].x;
Edge[EdgNum+2].EdgePoint2.y=Points[i].y;
EdgNum=EdgNum+3;
}
else
{
Edge[EdgNum].EdgePoint1.x=Points[i].x;
Edge[EdgNum].EdgePoint1.y=Points[i].y;
Edge[EdgNum].EdgePoint2.x=Points[k].x;
Edge[EdgNum].EdgePoint2.y=Points[k].y;
EdgNum=EdgNum+1;
}
// 形成新的凸包数组。
for(long m=j;m<iConvexNum-1;m++)
{
Points[m].x=Points[m+1].x;
Points[m].y=Points[m+1].y;
iConvexNum=iConvexNum-1;
i=-1;
}
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
POINT *Points;
POINT *POINTS;
Points=new POINT[iConvexNum];
POINTS=new POINT[DATA_NUM];
TRIANGLE *Triangle;
Triangle=new TRIANGLE[MAX_TRI];
EDGE *Edge;
Edge=new EDGE[MAX_EDGE];
ConvexHullTriangle(Edge,Triangle,Points);
Delaunay_Net(Edge,Triangle,POINTS);
delete[] Points;
delete[] POINTS;
//delete[] Triangle;
// delete[] Edge;
return 0;
}
jia_xiaoxin
2008-10-30
打赏
举报
回复
如果.y前的类对象是指针对象,或者.y前的对象未定义就会出现这样的问题。
.y前的类对象是指针对象要
->y
这样使用
ytfrdfiw
2008-10-30
打赏
举报
回复
贴代码
区块链Go语言Web应用开发
beego是一个用Go开发的应用框架,思路来自于tornado,路由设计来源于sinatra,支持如下特性MVCREST智能路由日志调试配置管理模板自动渲染layout设计中间件插入逻辑方便的JSON/XML服务 快速入门代码如下所示:package mainimport ( github.com/astaxie/beego)type MainController
struct
C++:
error
C2228
:
left
of '.str' must have
class
/
struct
/
union
error
C2228
c语言
error
2228,c语言
error
C2228
:
left
of '.tag' must have
class
/
struct
/
union
type
c语言
error
C2228
:
left
of'.tag'musthave
class
/
struct
/
union
type0#include #include #include #define n 4 #define m 3 #define w 2
struct
achievement {int schoolnumber; char name[20]; int mar...
c语言中
错误
c2228
,
error
C2228
:
left
of '.Push' must have
class
/
struct
/
union
type
error
C2228
:
left
of'.Push'musthave
class
/
struct
/
union
type0一串都是这个
错误
头疼死了 我怎么就发现不了哪里错了 分不多 麻烦了 谢谢#include const int stack_size=100;template
class
seqstack{public:seqstack(){top=-1;}seqstack(T a[],in...
c语言中
错误
c2228
,
错误
:
C2228
:''必须有
class
/
struct
/
union
我是一个很长时间的Java用户用Qt学习C++,我在理解方法如何工作方面遇到了很多麻烦.现在,我正在试图找出数据库,并试图用标题简化我的代码.通常在Java中我只有一个名为DatabaseControl的类,它带有一个void方法,可以执行我想要的任何操作.例如,正如我现在所做的那样,将员工添加到数据库.我通过做类似的事情来实例化这个类DatabaseControl myDBControl = n...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章