Click to See Complete Forum and Search --> : Acessing memeber of a class from another class


Alexpo
March 14th, 2008, 06:54 AM
Hi ,

I am a beginner in C++.

I want to know how can we access data member of a class from another class. I am facing problem in visualizing the things in writing separate .h and .cpp file.

Here I explain the things.We have three classes.

In a.cpp (assuming the a.h files is wriiten )
#include "a.h"
A::A()
{
int ii=1;
}
void A:: fun_a()
{
cout<<"Value in A:"<<ii<<endl;
}
============================
In b.h
#include "a.h"
Class B
{
int jj;
A b_aa;
public:
void fun_b();
void change_ii();
};

In b.cpp
#include "b.h"
B::B()
{
jj=2;
}

void B::fun_b()
{
cout<<"value in A:" << ii <<"value in B:" <<jj;
}
void B::change_ii()
{
ii=5;
}

// suppose both the functions are called and the value of ii is 5 and jj is 2
//Now I want to access the data ii from and jj from the C class.
//I want to assign kk a member of C class or a simple variable the value of ii (i.e. 5).

How to go about it ?

If declare a member of type B in our C class..it will carete another instance of B but does not contains the data in the live B object.

Is passing a reference to the B class in the contructor of C class is asolution? If so, whow to do that. I am getting confused in implementin this concept.

And what other ways are there?

Thanks and regards,
Alex



Back to Top

laserlight
March 14th, 2008, 07:04 AM
This has already been (partially) answered elsewhere (http://cboard.cprogramming.com/showthread.php?t=100366).

Lindley
March 14th, 2008, 07:15 AM
Several possible approaches:

1) Make the two classes friends.
2) Add get/set functions to the A class.
3) Make B inherit from A, and change ii to protected rather than private.
4) Figure out why your current design isn't as object-oriented as it should be, and fix it.

Which of these solutions best suits your needs, I can't guess from the information given.