我正在写一个struct _Point3d
和typedefed它到Point3d
并提供了一个指针声明PPoint3d
旁边Point3d
(请参阅代码)。有一个构造函数初始化struct
的成员。我在这里有两个疑问。typedef结构与指针和构造函数
typedef struct _Point3d
{
float x;
float y;
float z;
_Point3d(float _x, float _y, float _z) : x(_x), y(_y), z(_z)
{
}
}Point3d, *PPoint3d;
一: 是什么结构名称后提供指针(类型定义)本公约的真正含义?只要我们能创造的Point3d
指针这样
Point3d* _ppoint2 = new Point3d(1.0, 0.0, 0.0);
二: 有没有在这两种不同的方式创造Point3d
实例的任何差异。
PPoint3d _ppoint1 = new Point3d(0.0, 1.0, 0.0);
Point3d* _ppoint2 = new Point3d(1.0, 0.0, 0.0);
'Point3d'是一个'struct _Point3d','PPoint3d'是一个'struct _Point3d *'或换句话说指向'struct _Point3d'的指针或一个指向'Point3d'的指针。第二个问题,不,这是一回事。 –
1)这里指针的typedefing在我看来是不喜欢语言句法的曲柄的工作。 2)没有区别。 3)保留以下划线开头的全局名称空间中的名称。 – StoryTeller
为什么在使用'new'时标记为C?如果这只适用于C++,那么声明不遵循C++约定来声明和使用类。 – NathanOliver