Wywolanie metody klasy

0

Hej
Mam problem z pewnym zadaniem mianowicie program zawiera 2 klasy ( A oraz jej dziedziczna B ) tablica klasy A jest nie posortowana natomiast tablica B posortowana za pomoca sort()
I aby program dzialal poprawnie funkcja sort powinna sie wywolywac za kazdym razem gdy zostanie uzyta inna metoda lub funkcja.

Tutaj wklejam PSEUDOKOD prosze nie pisac ze brakuje dekonstruktora itp.

#include <iostream>

using namespace std;

class A{
    
public:
    double *array;
    int length ;
    A()
    {
       array = new double[50];
       length = 50;
    }

    double& operator[](int);
};

double& A::operator[](int index)
{
    if (index >= length) {
        exit(0);
    }
    return array[index];
}


class B : public A
{
public:
    B():A(){}

private:
    void sort(void); 
};


int main()
{
    B b1;
    // for wypelniajacy b1 -> b1.array = 1 5 4 6
    b1[2]=2;
    
    
    return 0;
}

Zakladajac ze tablica b1 zawiera : 1 5 4 6
Po wstawieniu na 2 indeks 2 : 1 5 2 6
I chcialbym aby koncowo wygladala tak : 1 2 5 6

2

Te dziedziczenie nie ma żadnego uzasadnienia.
Jaki jest powód dla którego wymyślasz koło na nowo? std::set to kontener posortowanych elementów.
Jaki jest sens robienia b1[2]=2; skoro wartość 2 ma wylądować pod innym indeksem niż 2?

0

Wiem ale niestety taki jest cel zadania ...

0

"Działanie sort musi byc takie ze po wywolaniu jakiejkolwiek funkcji lub operatora tablica zostaje posortowana"

1 użytkowników online, w tym zalogowanych: 0, gości: 1