MorganFaust
New member
динамического присвоения;
- поэлементного сложения и вычитания;
- объединение двух массивов в один (конкатенация);
- упорядочение массива по увеличению и по уменьшению;
- консольный ввод и вывод массива.
Код выдает много ошибок
- поэлементного сложения и вычитания;
- объединение двух массивов в один (конкатенация);
- упорядочение массива по увеличению и по уменьшению;
- консольный ввод и вывод массива.
Код выдает много ошибок
C++:
#include <iostream>
using namespace std;
class DynArray
{
unsigned int* arr;
int n;
public:
DynArray(int count);
DynArray(const DynArray& obj);
~DynArray();
void show();
DynArray& append(const DynArray& obj);
};
DynArray::DynArray(int count)
{
n = count;
arr = new unsigned int[n];
for (int i = 0; i < n; i++)
arr[i] = i;
}
DynArray::DynArray(const DynArray& obj)
{
n = obj.n;
arr = new unsigned int[n];
for (int i = 0; i < n; i++)
arr[i] = obj.arr[i];
}
DynArray::~DynArray() {
delete[] arr;
}
void DynArray::show() {
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
}
DynArray& DynArray::append(const DynArray& obj) {
unsigned int* tmp = new unsigned int[n + obj.n];
int i;
for (i = 0; i < n; i++)
tmp[i] = arr[i];
for (i = 0; i < obj.n; i++)
tmp[n + i] = obj.arr[i];
delete[] arr;
arr = tmp;
n += obj.n;
return *this;
}
int main() {
DynArray obj1(5);
DynArray obj2(3);
obj1.show();
obj2.show();
obj1.append(obj2);
obj1.show();
system("pause");
return 0;
}
DynArray DynArray::SumArray(const DynArray& obj1, const DynArray& obj2)
{
int n_min = 0, n_max = 0;
if (obj1.n < obj2.n)
{
n_min = obj1.n;
m_max = obj2.n;
}
else
{
n_min = obj2.n;
n_max = obj1.n;
}
unsigned int* tmp = new unsigned int[n_max];
for (int m = 0; m < n_max; m++)
{
if (m < obj1.n)
{
if (m < obj2.n)
tmp[m] = obj1.arr[m] - obj2.arr[m];
else
tmp[m] = obj1.arr[m];
}
else
tmp[m] = -obj2.arr[m];
}
return DynArray(tmp, n_max)
}
//--------------------------еще один конструктор
DynArray::DynArray(unsigned int* a, int k)
{
arr = a;
n = k;
}