Possible Duplicate:
Why is the C++ STL is so heavily based on templates? (and not on interfaces)
Why doesn't neither stl
nor Qt
containers implement interfaces. For example, it colud be Enumerable
for vectors
and lists
.
Like this:
template <typename T>
class Enumerable
{
public:
virtual const T at(int k) = 0;
//....
virtual ~Enumerable() {}
};
template <typename T>
class Vector: public Enumerable<T>
{
public:
virtual const T at(int k);
//....
};
As a result, code that I use, forces me to use concrete types of containers, that are used in it.