Zadania kolokwium

0

Witam mam problem z zadaniami z kolokwium z innej grupy. Chodzi o zadanie 1 które wstawiłem w obrazku. Ktoś jest wstanie mi objaśnić jak to należy zrobić? Nie wiem czy ja nie ogarniam czy polecenia są napisane nie do końca jasno. Podpunkty 2,3,4 i 5

https://zapodaj.net/02c7a615f4bc7.jpg.html


#include <iostream>
using namespace std;
 
class Tablica
{
 
    int rozmiar;
    float wartosc;
    double *tab;
 
public:
 
    Tablica(int size=1, double value=0.0)
    {
        rozmiar=size;
        wartosc=value;
 
 
        tab = new double [rozmiar];
 
        for (int i=0; i<rozmiar; i++)
        {
            tab[i]=wartosc;
        }
    }
 
    void wypisz()
    {
        for (int i=0; i<rozmiar; i++)
        {
            cout<<tab[i]<<" ";
        }
    }
 
    ~Tablica()
    {
        delete [] tab;
    }
};
 
int main() {
while(true)
    {Tablica *tabka;
    tabka = new Tablica;
    delete tabka;}
 
 
}


0

zacznij tak

#ifndef TAB_H
#define TAB_H
#include <vector>

template <typename T>
class Tab {
private:
    std::vector<T> *container;
public:
    explicit Tab(size_t size, T value) : container{new std::vector<T>(size, value)}{}
    explicit Tab(size_t size) : container{new std::vector<T>(size)}{}
    ~Tab(){delete container;}
};
#endif
0

Moim zdaniem interfejs klasy powinien wyglądać w następujący sposób:


class Tablica
{
public:
    Tablica( int size, double value=0.0 ) : currentSize{size}
    {
        if( currentSize>0 )
        {
            reservedSize = 2*currentSize;
            tab = new double [reservedSize];
            for( int i=0 ; i<currentSize ;++i ){ tab[i]=value; }
        }
    }
   virtual ~Tablica()   {   delete []tab;  }

   double operator[]( size_t index ) const { /* make implementation */ }
   double& operator[]( size_t index ) { /* make implementation */ }
   void addNewElement( double newElement ){ /* make implementation */ };
   double getSize() const noexcept { return currentSize; }
   double getReservedSize() const noexcept { return reservedSize; }

private:
    int    currentSize {0};
    int    reservedSize {0};
    double *tab {nullptr};
};

inline std::ostream& operator<<( std::ostream& os , const Tablica& tab )
{
    os << /* make implementation */;
    return os;
}

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