   Dumb question
  I know this seems dumb, but if you defined a class like this: class thingy{    int x;    thingy otherthingy;};[source]Would that crash your computer, givin that you would have thingy.otherthingy.otherthingy.otherthingy.etc...?  -~-The Cow of Darkness-~-  
  I don''t see how it could possibly compile, since the size of an object of that class would be infinite (and it can''t very well compile if the space needed to allocate an object cannot be calculated).  ;  ok... that''s what I thought.    -~-The Cow of Darkness-~-  ;  It''s not necessarily a dumb question, so make your topics meaningful instead.  All of us have to learn some time.You shouldn''t be able to compile that chunk of code because the compiler does not know the full definition of a thingy by the time it gets to the "otherthingy" member.If you are trying to have an object linked to another object of the same type, then use a pointer to a thingy:class thingy {  int v;  thingy* next_thingy;};The compiler is able to handle this because a pointer is just an address to an object, and the compiler doesn''t need to know the definition of the object at that point.Regards,Jeff  ;  Yes, I was planning on using a pointer actually, that was just kind of a random thought on my part...    -~-The Cow of Darkness-~-  ;  Although in C it won''t work, the idea of a recursive type is actually perfectly acceptable.  For instance (and this might not be the best example coz it''s obvious how the implementation goes, but conceptually...) a list in Lisp can be considered to be a recursive type (paraphrased into C++ notation):struct List{  int data;  List rest_of_list;};Along with a particular ''null'' list which enables you to stop the recursion.