Cyclic dependencies

X

xiaohuamao

Beside declare independent abstract classes, is there any other methods
to solve the problem of cyclic dependencies?Like the following one,
which causes compile error of undefined type.

class Child;

class Parent
{
public:
int a;
Child *myChild;
bool test() {return myChild->b == 0;}
};

class Child
{
public:
int b;
Parent *myParent;
bool test() {return myParent->a == 0; }
};

int main()
{
return 0;
}
 
P

Pierre Barbier de Reuille

xiaohuamao said:
Beside declare independent abstract classes, is there any other methods
to solve the problem of cyclic dependencies?Like the following one,
which causes compile error of undefined type.

class Child;

class Parent
{
public:
int a;
Child *myChild;
bool test() {return myChild->b == 0;}
};

class Child
{
public:
int b;
Parent *myParent;
bool test() {return myParent->a == 0; }
};

int main()
{
return 0;
}

Very simple, just put the bits that needs both definitions *after* both
definitions actually occured.

class Child;

class Parent
{
public:
int a;
Child* myChild;
bool test();
};

class Child
{
// Same as yours
};

bool Parent::test() { return myChild->b == 0; }

Pierre
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top