c++ - Error C2079, what order to define classes in -


I am getting a compiler error with this header file:

  #ifndef GAME1_H # Defined GAME1_H # included "GLGraphics.h" # "DrawBatch.h" class included GameComponent; Class game 1 (Private: GL Graphics Graphics; GameComponent; GameComponent (Game1); GameComponent (Game 1); GameComponent (Game1 Game); zero update (int); zero draw ();} square DrawableGameComponent: public gamecompany {personal: GL graphics graphics; drawback drawback; public: DrawableGameComponent (); DrawableGameComponent (Game1); Zero Draw ();}; # Endif  

The problem is that Game1 requires a full definition of GameComponent, and GameComponent requires a full definition of Game1. I had a lot of trouble in different heads, this is the reason why they are together. Can I do this by completely changing the implementation of any of the classes?

Thank you!

Think about the memory of the computer for each other.

  clas S B; class A {byte aa; b now;}; square b {byte bb; A BA; }; Ax;  

Now the questioner needs to answer how much space should be reserved for x ?

Let's see. The first byte of x is byte aa; . Quite easy. This is 1 byte. Next comes b ab; . Let's see what's there. The first byte of x.ab is a byte BB . So far there are 2 bytes for x . Next, this is a a ba; . Let's see what's there. The first byte of x.ab.ba is a byte A; . This is 3 bytes x for now.
And so on and furthermore the ad is infinite.
How big is x ? The correct answer is of course *** Outside wheat error *** .

The compiler does not really do this because it knows that it can not control this case - so the syntax does not allow circular prevention in the first place.


In this example there is a picture of the contents of x :


UPDATE < / P>

Obviously, I forgot to include a solution here Now that you understand what the problem is, the solution should be very simple. Use pointers to add or a to a to a and b Already use or on two sides, or after that, you will not have a circular - if in b A copy of A is not included, but it has only one indicator, which fixes the whole issue here.


Comments