Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Własny kontener do adaptera stosu

Ostatnio zmodyfikowano 2017-03-08 23:09
Autor Wiadomość
patryk181299
Temat założony przez niniejszego użytkownika
Własny kontener do adaptera stosu
» 2017-03-08 22:17:05
C/C++
#include <stack>

template < typename typZmiennej >
class CKontenerStosu
{
public:
    typedef typZmiennej value_type;
    typedef typZmiennej & reference;
    typedef const typZmiennej & const_reference;
    typedef int size_type;
   
    void push_back( const_reference zmienna ) { }
    void pop_back( void ) { }
    bool empty( void ) const { }
    size_type size( void ) const { }
    reference back( void ) { }
    CKontenerStosu( void ) { }
    CKontenerStosu( const CKontenerStosu & skopiuj ) { }
    ~CKontenerStosu( void ) { }
};

int main()
{
    std::stack < int, CKontenerStosu < int > > mojStos;
    mojStos.push( 12 );
    mojStos.pop();
    mojStos.empty();
    mojStos.size();
    mojStos.top();
    return 0;
}

Witam :) , jestem początkującym w c++. Mógłby ktoś wytłumaczyć mi jaka jest korelacja między push_back i pop_back w klasie CKontenerStosu a wywołaniem metody .push() i .pop() w main'e? Czemu te funkcje nie nazywają się tak samo? :) Z góry dziękuję za pomoc :)
P-158729
Bielan
» 2017-03-08 22:46:25
Ponieważ tak naprawdę wywołujesz metody
std::stack
, które niżej korzystają z klasy, którą przesyłasz jako argument szablonu. Nazwy funkcji w kontenerze są narzucone przez wymagania
std::stack
.
P-158732
1aam2am1
» 2017-03-08 22:49:54
Ponieważ mojStos jest typu std::stack<...> a nie CKontenerStosu. Klasa stack wykorzystuje powyższa klase aby przechowywać w niej wartości i na niej operować.
Ale jednocześnie dla ciebie udostepnia interfejs (funkcje) abyś mógł na niej pracować.
Nie zglebialem się w budowę wewnętrzna biblioteki ale najpewniej funkcja push wywołuje w sobie funkcje push_back itd...
P-158733
patryk181299
Temat założony przez niniejszego użytkownika
Dziekuję :)
» 2017-03-08 23:09:27
Dziękuję ślicznie za pomoc :) To by wyjaśniało wszystko :) Zamykam :)
P-158735
« 1 »
  Strona 1 z 1