• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

класс для работы с одномерными динамическими массивами значений типа unsigned int.

MorganFaust

New member
17.04.2020
2
0
BIT
0
динамического присвоения;
- поэлементного сложения и вычитания;
- объединение двух массивов в один (конкатенация);
- упорядочение массива по увеличению и по уменьшению;
- консольный ввод и вывод массива.

Код выдает много ошибок

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;
}
 

dorofei

Заблокирован
05.05.2020
35
0
BIT
0
А проблема-то в чем? Ищешь лоха который бы тебе исправил ошибки в твоем коде ? :) Или может ищешь еще чего-то более экзотичного.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!