From: "Niklas Pettersson" Newsgroups: comp.os.msdos.djgpp Subject: Re: classes? Date: Wed, 12 Apr 2000 07:14:09 +0200 Organization: Lund Institute of Technology, Sweden Lines: 58 Message-ID: <8d10nv$72m$1@news.lth.se> References: <38F3FDB4 DOT DCDEBD61 AT rug DOT ac DOT be> NNTP-Posting-Host: npedt97.univ.vxu.se X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2919.6600 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com It's because you try to include the files in cycle. For example you have a Class 1 hat needs to know that Class 2 exists to be created but Class 2 need to know class 1!! (Which should be created first? the chicken or the egg) The solution is to make a partial declaration of one class Class Class2; // put in one of the files instead of the include in that way the cycle is broken. / Niklas "Bram de Greve" wrote in message news:38F3FDB4 DOT DCDEBD61 AT rug DOT ac DOT be... > If have this strange problem, can anyone help me please ??? > > Say, I have two classes Class1 and Class2. > I have the the stuff (interface and implementation) of Class1 in > class1.hpp and class1.cpp. > The stuff of Class2 is in class2.hpp and class2.cpp. > Both classX.hpp are done with > #ifndef __CLASSX_HPP_ > #define __CLASSX_HPP_ > ... > #endif > so I can't include twice the same file. > So far, so good, I can compile both class1.cpp and class2.cpp. > > Now, in Class1, I need a member object of Class2 > class Class1 > { > Class2 * myClass2; > ... > }; > Thus in class1.hpp, I include "class2.hpp" so that Class1 "knows" > Class2. > > I also need a member object of Class1 in Class2 > class Class2 > { > Class1 * myClass1; > ... > }; > Thus in class2.hpp, I include "class1.hpp". > > MY PROBLEM IS: THIS NEW SITUATION WILL NOT COMPILE!!! > WHY??? > > Thanks in advance, > Bramz > > >