• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z konstruktorem kolejki

Object Storage Arubacloud
0 głosów
103 wizyt
pytanie zadane 18 maja 2020 w C i C++ przez niezalogowany

Mam problem z konstruktorem kolejki, wszystko jest ok dopóki nie tworzę jej w mainie, wtedy wyskakuje mi coś takiego:

 

 

Miałem podobny problem kiedy pisałem stos, ale nagle zniknął, dodam że pracuję na Linuxie i jestem ciekaw czy to może być wina systemu.

 

#include <iostream>

#include "Queue_implementation.h"

using namespace std;

int main()
{
    Queue <int> Test;
    
    return 0;
}

 

#ifndef QUEUE_IMPLEMENTATION_H_INCLUDED
#define QUEUE_IMPLEMENTATION_H_INCLUDED

#include <stdexcept>


template <class Type>
class Queue
{
    struct node
    {
        Type data;
        node * next;
        node(Type newData)
        {
            data = newData;
            next = NULL;
        }
    };
    node head, rear;

public:
    Queue();
    bool isEmpty() const;
    void push(Type);
    Type get();
    Type front();
    ~Queue();
};

template <class Type>
Queue<Type>::Queue()
{
    head = rear = NULL;
}

template <class Type>
bool Queue<Type>::isEmpty()const
{
    return head == NULL;
}

template <class Type>
void Queue<Type>::push(Type newData)
{
    node temp_rear = rear;
    rear = new node(newData);
    if (head == NULL)
        head = rear;
    else
        temp_rear->next = temp_rear;
}

template <class Type>
Type Queue<Type>::get()
{
    if(head == NULL )
        throw std::out_of_range("Queue is empty!");

    Type data = rear->data;

    node newHead = head->next;

    delete head;

    head = newHead;

    return data;
}

template <class Type>
Type Queue<Type>::front()
{
    if(head == NULL)
        throw std::out_of_range("Kolejka pusta!");

    return head->data;
}

template <class Type>
Queue<Type>::~Queue()
{
    while(!isEmpty())
    {
        get();
    }
}

#endif // QUEUE_IMPLEMENTATION_H_INCLUDED

 

1 odpowiedź

0 głosów
odpowiedź 18 maja 2020 przez TOM_CPP Pasjonat (22,640 p.)
wybrane 18 maja 2020
 
Najlepsza

To nie jest wina systemu, tylko masz następujące błędy w pliku Queue_implementation.h


  • linia 14 : Domyślny konstruktor jest wymagany. Zmień na
    node( Type newData = {} ) 

     

  • linia 20 : To są wskaźniki więc powinno być
    node *head, *rear; 

     

  • linia 46: Brak definicji wskaźnika, zmień na 
    node* temp_rear = rear; 

     

  • linia 62: To samo co powyżej zmień na
    node* newHead = head->next;

     


 

komentarz 18 maja 2020 przez niezalogowany
Ok działa, czyli trochę tego było. Dzięki ;)

Podobne pytania

0 głosów
2 odpowiedzi 753 wizyt
pytanie zadane 29 kwietnia 2017 w C i C++ przez Łukasz Świtaj Użytkownik (520 p.)
0 głosów
1 odpowiedź 468 wizyt
pytanie zadane 30 sierpnia 2016 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
0 odpowiedzi 297 wizyt
pytanie zadane 22 maja 2016 w C i C++ przez L33TT12 Gaduła (3,950 p.)

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...