Cmq è un buon inizio. Attenzione al getElemento, io lo metterei const.
const tipoelem & getElemento() const;
non puoi ne modoficarlo ne puoi permettere agli utilizzatori di modificarlo.
il set lo farei per riferimento e non per valore
setElemento(const T &)
se T è una classe enorme la copia può costare molto in spazio e velocità