Cyclic header dependency

Discussion in 'C++' started by pallav, Apr 12, 2007.

  1. pallav

    pallav Guest

    I have to header files, circuit.h and latch.h that reference each
    other and are causing a cyclic dependency.

    latch.h file

    #include "circuit.h"
    typedef boost::shared_ptr<struct Latch> LatchPtr;

    class Latch
    {
    ...
    CircuitPtr circuit;
    };

    circuit.h file

    #include "latch.h"
    typedef boost::shared_ptr<struct Circuit> CircuitPtr;

    class Circuit
    {
    ...
    list<LatchPtr> latches;
    };

    As you can see there is a cyclic dependency. To get things to compile,
    what I've done is
    I've changed the circuit.h file as follows:

    new circuit.h file

    // defined in latch.h, can't do #include "latch.h" as that will
    introduce cyclic dependency
    extern typedef boost::shared_ptr<struct Latch> LatchPtr;

    typedef boost::shared_ptr<struct Circuit> CircuitPtr;

    class Circuit
    {
    ...
    list<LatchPtr> latches;
    };

    This solves the problem, but I'm wondering if this is the way to fix
    such issues. I know C++ has forward declarations but I"m still trying
    to figure out how to use them and if they'll solve this. The other
    option is to combine the two header files but I would prefer not to do
    that.

    Is the above fix bad practice? thanks for your time.
     
    pallav, Apr 12, 2007
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Dennis Lerche

    Cyclic Dependency problem

    Dennis Lerche, May 11, 2004, in forum: C++
    Replies:
    6
    Views:
    11,232
    Khaled.Jouda
    Jul 5, 2010
  2. Replies:
    3
    Views:
    636
    Michael Mair
    Apr 22, 2006
  3. pallav

    Cyclic header dependency

    pallav, Apr 12, 2007, in forum: C++
    Replies:
    1
    Views:
    513
  4. pallav

    Cyclic header dependency

    pallav, Apr 12, 2007, in forum: C++
    Replies:
    3
    Views:
    397
    Michael
    Apr 13, 2007
  5. pallav

    Cyclic header dependency

    pallav, Apr 12, 2007, in forum: C++
    Replies:
    1
    Views:
    594
Loading...

Share This Page