我正在寫一個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