Click to See Complete Forum and Search --> : Making classes communicate with each other


August 11th, 1999, 12:51 AM
Suppose if I have 2 classes, called class A and class B and is used as follows:

#include "A.h"
#include "B.h"

void main()
{
A objectA;
B objectB;
}

Now class B need to access a variable/function of class A at run time. Simply declare "A objectA;" in class B won't work because a new objectA is created. I want class B refer to the objectA created in main function.

Is there a solution to this? I am new to OOP and hope you can help. Thanks.

Timo Hahn
August 11th, 1999, 02:31 AM
sure, pass a pointer (or reference) to objectA to objectB and store it there. Then objectB can use this pointer to access objectA.

Timo

August 11th, 1999, 07:56 PM
Could you explain further by saying "pass a pointer/reference". Giving an example will be great. Thanks.

Regards,
John

ChaiBot
August 11th, 1999, 11:58 PM
Here your code should look like this:

//b.h

#include "A.h"


class B
{
public:
A *m_ptrToObjectOfClassA;
void DoSomethingWithObjectOfClassA();

B();
virtual ~B();
};




Then in your cpp file you can do things like:

//b.cpp

#include "B.h"


B::DoSomethingWithObjectOfClassA()
{
A->VariableOfClassA++;
}






and your main prog is like:


int main(int argc, char* argv[])
{

A ObjectA;
B ObjectB;
ObjectB.m_ptrToObjectOfClassA = &ObjectA;
ObjectB.DoSomethingWithObjectOfClassA();

}



I think you got it..