Re: error c2259 - (TEMPLATE CLASSES AND INHERITANCE)
[ news_user ] <waste-paste@hotmail.com> wrote:
another example where pointers are essentially needed is:
vector<vector<T>> OR [vector<T>]
where T is of different type. the workaround is to use pointers:
vector<vector<T>*> OR [vector<T>*]
You probably mean vector<T*>. You want a vector of pointers, not a
pointer to vector.
Usually i did not want to use pointers anymore (just references):
Well, you can't have a vector of references - references are not objects
and can't be allocated.
I have read that the STL vector was designed to store full qulified
Objects, because it uses the Object copy extensively internaly.
An "object" in C++ is not necessarily an instance of a class. Basically,
anything that occupies memory and has an address is an object. int
variable is an object. A pointer is an object, too.
What is the problem when storing pointers or references inside an STL
vector?
No problem storing pointers (apart from memory management issues).
References however are not objects (you can't take an address of a
reference) and cannot be stored in STL containers.
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925