f0rtex
07-06-2003, 11:10
Hallo Leute
Es sei folgende Stackimplementierung gegeben:
template <class T, class C=deque<T> > class std::stack {
protected:
C c;
public:
typedef typename C::value_type value_type;
typedef typename C::size_type size_type;
typedef C container_type;
explicit stack (const C& a=C()) : c(a) {}
bool empty() const {return c.empty(); }
size_type size() const {return c.size();}
value_type& top() {return c.back();}
const value_type& top() const{return c.back();}
void push(const value_type& x) {c.push_back(x); }
void pop() {c.pop_back();}
};
Meine Frage ist folgende:
Woran erkennt der Compiler welche der beiden top() Funktionen er benutzen soll? Kann mir jemand ein Bsp. für den ersten und zweiten Fall nennen?
MfG
f0rtex
Es sei folgende Stackimplementierung gegeben:
template <class T, class C=deque<T> > class std::stack {
protected:
C c;
public:
typedef typename C::value_type value_type;
typedef typename C::size_type size_type;
typedef C container_type;
explicit stack (const C& a=C()) : c(a) {}
bool empty() const {return c.empty(); }
size_type size() const {return c.size();}
value_type& top() {return c.back();}
const value_type& top() const{return c.back();}
void push(const value_type& x) {c.push_back(x); }
void pop() {c.pop_back();}
};
Meine Frage ist folgende:
Woran erkennt der Compiler welche der beiden top() Funktionen er benutzen soll? Kann mir jemand ein Bsp. für den ersten und zweiten Fall nennen?
MfG
f0rtex