2014-12-04 4 views
-1

Когда речь заходит о параметрах параметров, arg [] эквивалентен типу * arg, и на самом деле, более поздняя версия более точна, потому что вы не можете передавать массивы в качестве аргументов функции, они всегда неявно преобразуются в указатель на тип. Поэтому, учитывая это, я предполагаю, что это не работает, и это не так! Но я не знаю, как это исправить. Я думаю, что я мог бы это назадразница между типами arg [] и type * arg

Polygon::Polygon(int num_points, double x_array[], double y_array[]) 
{ 
    this->num_points = num_points; 
    for (int k = 0; k < num_points; k++) 
    { 
     x_array[k] = points[k].GetX(); 
     y_array[k] = points[k].GetY(); 
    } 
    } 

Я принимаю значение из неинициализированных члена точек массива и назначая их массивы, переданных в аргументах. Есть ли другой способ написать его? Я могу дать весь код, если вы хотите

+2

«это не работает». Пожалуйста, объясните, каковы предполагаемые результаты, каковы фактические результаты и как вы их наблюдаете. Также не используйте массивы. Вместо этого используйте 'std :: vector'. –

+0

Или 'std :: array', если на то пошло. – Shoe

+0

@ н.м. это вывод, что я получаю: (-12,8) (3,4) (0, 0) (0, 0) (0, 0) (0, 0) (0, 0) (0, 0) – suitedupvet83

ответ

0

Вы, вероятно, хотите изменить

x_array[k] = points[k].GetX(); 
y_array[k] = points[k].GetY(); 

к чему-то вроде этого

points[k] = Point(x_array[k], y_array[k]); 
Смежные вопросы