Я заметил, что это вызвало замешательство у нескольких человек, но после прочтения нескольких постов здесь и учебника по cplusplus мой мозг все еще болтается.
Предположим, у меня есть следующие переменные в заголовочном файле -
int numberOfLinePoints;
D3DXVECTOR3* line; //confused as to what it is
Затем в файле реализации C ++ я инициализирую их следующим образом -
//both initialized in constructor
numberOfLinePoints = 25;
line = new D3DXVECTOR3[numPoints]; //array of pointers?
Что теперь представляет моя строковая переменная?
Насколько я могу судить по чтению ссылок на stackoverflow, он должен представлять собой массив указателей. Затем я прочитал следующее, однако ...
(1) Указатели для начинающих
... где (A) массивы указателей и (B) указатели на массивы, оба обсуждаются. Это снова смутило меня, так как они оба работают одинаково.
Тот факт, что я определяю свои указатели в отдельном месте, куда я их размещаю (правильно?), По-видимому, является источником моей путаницы. Правильно ли, что это массив указателей на объекты D3DXVECTOR3?
Завершить - если переменная строка содержит информацию об одном отрезке, как мне создать массив отрезков? В настоящее время у меня есть следующее -
//HEADER FILE
int numberOfLineSegments;
D3DXVECTOR3** lineCollection; //array of pointers - each of which
//points to an array of pointers?
//CPP FILE
numberOfLineSegments = 8; //constructor
for(i = 0; i < numberOfLineSegments; i++) //initialization
{ //and allocation CORRECT?
lineCollection[i] = new D3DXVECTOR*[numPoints]; //of memory for Y/N
} //lineCollection
VOID createLineSegments(startPoint, endPoint) //could return array instead
{
//pseudo to generate one line segment
while != numberOfLinePoints
line[sentinel++] = interpolate(startPoint, endPoint, time_T)
//pseudo to generate array of line segments
while != numberOfLines
lineCollection[sentinel++] = line
}
Любая помощь очень ценится.