Alex Rivera | Logout

Class prototyping

Asked 2011-05-31T13:02:30.007
14

I have put several instances of class b in class a but this causes an error as class a does not know what class b is.

Now I know I can solve this problem by writing my file b a c but this messes up the reachability as well as annoys me. I know I can prototype my functions so I do not have this problem but have been able to find no material on how to prototype a class.

does anyone have an example of class prototyping in c++.

as there seems to be some confusion let me show you what i want

class A
{
public:

B foo[5];

};

class B
{
public:
int foo;
char bar;
}

but this does not work as A cannot see B so i need to put something before them both, if it was a function i would put A(); then implement it later. how can i do this with a class.

Edit
Report

1 Answer

5

You're looking for declarations.

class A;
class B {
    A MakeA();
    void ProcessA(A a);
};
class A {
    B bs[1000];
};

If you forward declare a class, you can

declare functions taking and returning it or complex types made of it
declare member variables of pointer or reference to it

This basically means that in any case which doesn't end up with instances of A inside B and vice versa, you should be able to declare and define any interface between A and B.

answered 2011-05-31T13:15:47.257

Your Answer