Я создал заголовочный файл polygon.h и polygon. cpp
polygon.h:
#pragma once
#include <iostream>
using namespace std;
class Polygon {
protected:
int numSides;
int* sides;
public:
Polygon(int nSides);
Polygon(const Polygon&);
~Polygon();
int getNumOfSides();
int perimeter(); // perimeter = hekef
bool operator==(Polygon);
};
polygon . cpp:
#include <iostream>
#include "Polygon.h"
using namespace std;
Polygon::Polygon(int nSides) {
this->numSides = nSides;
this->sides = new int[nSides];
if (nSides != 3 && nSides != 4)
{
cout << "Enter sides for polygon: " << endl;
for (int i = 0; i < nSides; i++)
cin >> this->sides[i];
}
};
Polygon::Polygon(const Polygon& other) {
this->numSides = other.numSides;
this->sides = new int[other.numSides];
for (int i = 0; i < this->numSides; i++)
this->sides[i] = other.sides[i];
};
Polygon::~Polygon() {
delete [] this->sides;
};
int Polygon::getNumOfSides() {
return this->numSides;
};
int Polygon::perimeter() {
int sum = 0;
for (int i = 0; i < this->numSides; i++)
sum += this->sides[i];
return sum;
};
bool Polygon::operator==(Polygon other) {
return (this->getNumOfSides() == other.getNumOfSides() && this->perimeter() == other.perimeter());
};
Я также создал файл Main, но это не имеет значения.
Проблема заключается в том, что я передаю, например, numSides значение 5 и программа должны создать из сторон новый динамический массив c int с 5 слотами, как в этом примере, но вместо этого при отладке я обнаружил, что он создает только 1 слот, как будто это обычное целое число, и когда я устанавливаю 5 значений в сторон (как в этом примере с 5), сторон заканчивается только первым значением I
Буду рад, если кто-нибудь поможет и хотя бы решит эту проблему:)