C++ 点结构声明

C++ 点结构声明,c++,C++,伙计们,我有一个问题是关于点结构声明的,当我在阅读关于几何数据类型声明的教程时,我看到了两个让我困惑的奇怪的事情,我将展示这些事情 typedef double point[DIMENSION]; typedef struct { int n; /* number of points in polygon */ point p[MAXPOLY]; /* array of points in polygon */ } polygon; typedef st

伙计们,我有一个问题是关于点结构声明的,当我在阅读关于几何数据类型声明的教程时,我看到了两个让我困惑的奇怪的事情,我将展示这些事情

typedef double point[DIMENSION];
typedef struct {
    int n;          /* number of points in polygon */
    point p[MAXPOLY];   /* array of points in polygon */
} polygon;


typedef struct {
    point p1,p2;        /* endpoints of line segment */
} segment;

typedef point triangle[3];  /* triangle datatype */
让我们假设维是一些数字,例如(2)和多边形中的点的maxpoly-maxsimum数,我与点的声明相混淆 这意味着什么?我知道什么是typedef,但如果我们将点声明为双数组,那么我们如何在另一个结构中使用它呢

或者类作为对象?比如结构数组? 考虑这个

typedef truct 
{
point p1,p2;
}segment;
这有多正确?请帮助我理解这一点

#define double point[dimension]
表示一个点在2维中为2倍,在3维中为3倍,等等。 但是你不应该看这个!!!! OO语言的全部要点是,您不需要知道类的内部细节。你只需要知道API——如何使用它

事实上,该类重载运算符,以便赋值工作,等等。您可以像其他任何类一样在结构中使用点。C++允许嵌套结构或结构数组。 表示一个点在2维中为2倍,在3维中为3倍,等等。 但是你不应该看这个!!!! OO语言的全部要点是,您不需要知道类的内部细节。你只需要知道API——如何使用它


事实上,该类重载运算符,以便赋值工作,等等。您可以像其他任何类一样在结构中使用点。C++允许嵌套结构或结构数组。

< p>使用<代码> TyPufF定义的只是另一个类型的别名(即另一个名称)。 就你而言

typedef double point[DIMENSION];
这将名称
定义为“双精度类型的大小维度数组”

在这之后,我不再写作了

double my_point[DIMENSION];
你可以写

point my_point;

如果typedef位于头文件中,则该名称可以在所有源文件和头文件中使用,包括带有typedef的头文件。

使用
typedef
定义的内容只是另一类型的别名(即另一名称)

就你而言

typedef double point[DIMENSION];
这将名称
定义为“双精度类型的大小维度数组”

在这之后,我不再写作了

double my_point[DIMENSION];
你可以写

point my_point;

如果typedef位于头文件中,则该名称可用于所有源文件和头文件,包括带有typedef的头文件。

您的代码不包含任何#define,但您询问的是#define。
#define
在您的问题中,它真的正确吗?使用预处理器更改关键字的含义是一个糟糕的主意。也许您混淆了
#define
typedef
的含义?这是两个不同的东西,这几乎不值得调用C++。结构的类型定义是怎么回事?那些因为asker不了解某些东西而否决投票的人需要重新思考他们的核心价值观。你的代码没有任何“定义”,但你问的是“定义”。你的问题中的
#define
,真的正确吗?使用预处理器更改关键字的含义是一个糟糕的主意。也许您混淆了
#define
typedef
的含义?这是两个不同的东西,这几乎不值得调用C++。结构的类型定义是什么?那些因为asker不理解某些东西而否决投票的人需要重新思考他们的核心价值观。我不会碰一个重新定义内置类型的API。我不知道dato在读什么教程,也不知道原来的问题现在已经被编辑,但我认为这只是为了教学目的。很可能教程最初是用C语言编写的。我不会碰一个重新定义内置类型的API。我不知道dato在读什么教程,原来的问题现在已经被编辑过了,但我认为它只是为了教学目的。很可能教程最初是用C编写的。