Błąd "Run failed" podczas uruchamiania aplikacji (Cygwin)

0

Witam,
ostatnio zabrałem się za naukę w C++. Postanowiłem napisać prostą klasę wskaźnika, z użyciem szablonów. Program buduje się poprawnie, zero zastrzeżeń od kompilatora.
Jednak podczas uruchamiania, wyświetla się komunikat:

RUN FAILED (exit value 1, total time: 1s)

Problem występuje jedynie wtedy, gdy jako argument konstruktora przekazuję wartość za pomocą operatora &. Gdy przekazuję wskaźnik z pamięcią alokowaną dynamicznie (za pomocą operatora new), wszystko przebiega poprawnie. Czy wie ktoś, czemu tak się dzieje i jak można temu zaradzić?
Korzystam z Netbeans z kompilatorem cygwin.
Z góry dziękuję za pomoc.

Kod aplikacji:

 
//smart_pointer.hpp

#ifndef TEMPLATE_HPP
#define	TEMPLATE_HPP

template <typename T> class smart_pointer{
private:
    T* object;
public:
    T* getObject(){
        return object;
    }
    void setObject(T* t){
        this->object = t;
    }
    smart_pointer(T* t){
        setObject(t);
    }
    smart_pointer(T t){
        setObject(&t);
    }
    ~smart_pointer(){
        delete object;
    }
    T* operator ->(){
        return object;
    }
    T operator *(){
        return *object;
    }
};


#endif	/* TEMPLATE_HPP */
 
//main.cpp

#include <iostream>
#include "smart_pointer.hpp"

int main() {
    int i = 5;
    smart_pointer<int> pointer(&i);
    std::cout<<*pointer;
    return 0;
}
1

#Wolasz delete na obiekcie nie stworzonym przez new.
#Nie mozesz od tego sobie wziac referencji do kopii zmiennej na stosie i myslec, ze to bedzie wieczne ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.