Ошибка LNK2001 , LNK1120 неразрешенный внешний символ
Здраствуйте, с горем пополам написал код по заданию, но в итоге он получился неправильным. Помогите пожалуйста, что не так и где накосячил Код
//Класс PolyObjectNumber(Полиобъект(фигура, состоящая из нескольких линий)) (1).
//Поля: массив точек с координатами(X, Y)(static).
//Действия : инкремент, умножение(координат на число) (4).
//Найти периметр полиобъекта(сумма расстояний между точками массива) (6).
//Осуществить сортировку массива объектов PolyObjectNumber по периметру(9).
#include<Windows.h>
#include<math.h>
#include<cstdlib>
#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;
class PolyObjectNumber {
private:
static double* x;
static double* y;
int size_point;
public:
PolyObjectNumber() { size_point = 0; }
PolyObjectNumber(int _size) {
size_point = _size;
x = new double[size_point];
y = new double[size_point];
}
PolyObjectNumber(const PolyObjectNumber& poly_object_number) {
memcpy(this, &poly_object_number, sizeof(PolyObjectNumber));
}
double frand(double min, double max){
double f = (double)rand() / RAND_MAX;
return min + f * (max - min);
}
friend ostream& operator << (ostream& stream, const PolyObjectNumber obj) {
return obj.Print(stream);
}
friend istream& operator >> (istream& stream, PolyObjectNumber obj){
return obj.Scan(stream);
}
ostream &Print(ostream& stream) const {
stream << right;
stream << "Всего точек в фигуре: " << size_point << ", ";
for (int i = 0; i < size_point; i++) {
stream << "Точка № " << i + 1 << ": ";
stream << "(X;Y) =" << x[i] << ", " << y[i] << "\n";
};
return stream;
}
istream &Scan(istream& stream) {
stream >> size_point;
x = new double[size_point];
y = new double[size_point];
for (int i = 0; i < size_point; i++) {
stream >> x[i] >> y[i];
}
return stream;
}
friend PolyObjectNumber& operator ++(PolyObjectNumber& poly_object_number) {
for (int i = 0; i < poly_object_number.size_point; i++) {
poly_object_number.x[i]++;
poly_object_number.y[i]++;
}
return poly_object_number;
}
PolyObjectNumber operator ++(int) {
PolyObjectNumber poly_object_number;
poly_object_number = *this;
++(*this);
return poly_object_number;
}
PolyObjectNumber operator *(const double& num) {
for (int i = 0; i < size_point; i++) {
x[i] = x[i] * num;
y[i] = y[i] * num;
}
return *this;
}
double perimeter() const {
double perimeter = 0;
for (int i = 1; i < size_point; i++) {
perimeter = perimeter + sqrt(pow(x[i] - x[i - 1], 2) + pow(y[i] - y[i - 1], 2));
}
perimeter = perimeter + sqrt(pow(x[size_point] - x[0], 2) + pow(y[size_point] - y[0], 2));
return perimeter;
};
void generate_value(double min, double max) {
for (int i = 0; i < size_point; i++) {
x[i] = frand(min, max);
y[i] = frand(min, max);
}
}
bool operator >(const PolyObjectNumber& poly_object_number) const {
return (*this).perimeter() > poly_object_number.perimeter();
}
bool operator <(const PolyObjectNumber& poly_object_number) const {
return (*this).perimeter() < poly_object_number.perimeter();
}
static void sort(PolyObjectNumber* poly_object_number, int quantity) {
bool can_changed = true;
while (can_changed) {
can_changed = false;
for (int i = 0; i < quantity - 1; i++) {
if (poly_object_number[i] > poly_object_number[i + 1]) {
swap(poly_object_number[i], poly_object_number[i + 1]);
can_changed = true;
}
}
}
}
};
int main(void) {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
PolyObjectNumber* poly_object_random;
PolyObjectNumber* poly_object_file;
int quantity_of_objects;
char selection;
ifstream in;
in.open("input.txt", ios::_Nocreate);
if (!in) {
cout << "Ошибка открытия файла input.txt\n";
return 0;
}
in >> quantity_of_objects;
poly_object_random = new PolyObjectNumber[quantity_of_objects];
poly_object_file = new PolyObjectNumber[quantity_of_objects];
do
{
system("cls");
cout << " 1. Заполнение массива из файла и случайным образом.\n";
cout << " 2. Найти периметр полиобъекта\n";
cout << " 3. Отсортировать массив объектов PolyObjectNumber по периметру\n";
cout << " 4. Инкремент отсортированного массива объектов PolyObjectNumber\n";
cout << " 5. Умножение отсортированного массива объектов PolyObjectNumber на число\n";
cout << " 6. Выход\n";
cin >> selection;
cout << '\n';
switch (selection)
{
case '1':
cout << "1. Заполнение массива из файла и случайным образом.\n";
cout << "Из файла input.txt.\n";
for (int i = 0; i < quantity_of_objects; i++) {
in >> poly_object_file[i];
}
cout << "Случайным образом\n";
for (int i = 0; i < quantity_of_objects; i++) {
poly_object_random[i].generate_value(-50, 50);
}
cin.ignore(2);
break;
case '2':
cout << " 2. Нахождение периметра полиобъекта\n";
cout << "\nСлучайные данные\n";
for (int i = 0; i < quantity_of_objects; i++)
{
cout << "Периметр " << i + 1 << "поли-объектая: " << poly_object_random[i].perimeter();
}
cout << "\nДанные из файла\n";
for (int i = 0; i < quantity_of_objects; i++) {
cout << "Периметр " << i + 1 << "поли-объектая: " << poly_object_file[i].perimeter();
}
cin.ignore(2);
cin.get();
break;
case '3':
cout << "3. Отсортировать массив объектов PolyObjectNumber по периметру\n";
cout << "Сортировка массива с значениями из файла :\n";
PolyObjectNumber::sort(poly_object_file, quantity_of_objects);
cout << "Сортировка массива со случайными значениями :\n";
PolyObjectNumber::sort(poly_object_random, quantity_of_objects);
cin.ignore();
cin.get();
break;
case '4':
cout << "4. Инкремент отсортированного массива объектов PolyObjectNumber\n";
cout << "Исходные значения массива :\n";
for (int i = 0; i < quantity_of_objects; i++){
cout << poly_object_random[i];
}
cout << "Значения массива после операции инкремента:\n";
for (int i = 0; i < quantity_of_objects; i++) {
cout << ++poly_object_random[i];
}
cin.ignore();
cin.get();
break;
case '5':
cout << " 5. Умножение отсортированного массива объектов PolyObjectNumber на число\n";
cout << "Исходные значения массива :\n";
for (int i = 0; i < quantity_of_objects; i++) {
cout << poly_object_random[i];
}
cout << "Значения массива после операции умножения на 5:\n";
for (int i = 0; i < quantity_of_objects; i++) {
cout << poly_object_random[i] * 5;
}
cin.ignore();
cin.get();
break;
case '6':
cin.ignore();
break;
default:
cout << selection << " - Не корректный выбор.\n";
cout << endl;
cin.ignore();
cin.get();
}
} while (selection != '6');
in.close();
delete[]poly_object_file;
delete[]poly_object_random;
system("pause");
return 1;
}
