2014-09-28 5 views
-1

Im, создающий программу, которая найдет область многоугольника. Количество вершин изменяется. Я создал структуру, в которой использовался массив, содержащий точки. Heres код для этой части:C++ массив внутри структуры

public: 

int vertices; 
struct triangleStruct{ 

    int verts[vertices][vertices]; 
}; 

Это дает ошибку «недопустимое использование не члены статических данных Triangle :: вершину,» Это в пределах класса называется треугольником. Зачем?!?!

+0

'struct' должен иметь размер, фиксированный во время компиляции. –

+0

Позвольте мне объяснить больше: конструкция класса является треугольником (int) и устанавливает количество вершин. функция, которая делает это, устанавливает значение, вмененное в переменную вершин. – user3688499

+0

Но для этой структуры данных компилятору должен быть задан фиксированный размер. Вам нужно динамическое распределение для того, что вы хотите сделать. Возможно, посмотрите на 'std :: vector'? – Galik

ответ

1

Для того, чтобы объявить массив, определяет тип элементов и количество элементов, требуемого массив следующим образом:

type arrayName [ rows][ cols ]; 

rows и cols должен быть целым числом константы больше нуля. В кратком размере массив должен быть доступен во время компиляции, но в вашем случае вы пытаетесь предоставить динамический размер для выделения массива, поэтому эта ошибка возникает. Для этого я бы предложил использовать vectors.

Смежные вопросы