template<typename T> class dvojice<T*> {
    T *prvni, *druhy;
    bool vlastni;
public:
    T* getPrvni(){return prvni;}
    T* getDruhy(){return druhy;}
    void setPrvni(T* prv){prvni = prv;}
    void setDruhy(T* dru){druhy = dru;}
    void setVlastni(bool vlast){vlastni = vlast;}
    dvojice(T* prv, T* dru);
    ~dvojice();
};

template<typename T>
dvojice<T*>::dvojice(T* prv, T* dru)
{
    setPrvni(prv);
    setDruhy(dru);
    setVlastni(false);
}

template<typename T>dvojice<T*>::~dvojice()
{
    if(vlastni)
    {
        delete prvni;
        delete druhy;
    }
}
