#define interface struct
template <typename T>
interface IVector
{
class iterator;
virtual iterator begin() const = 0;
};