Re: Class reference member problem
tech <naumansulaiman@googlemail.com> wrote:
Hi, i have the following situation
class B
{
public: // I'm assuming either createBobj is public, or
// A is a friend of B.
static B createBobj();
}
// I'm assuming you meant to put a ';' after that closing brace.
Class A
// I'm assuming you meant "class A"
{
func()
// I'm assuming func() returns void
{
m_obj = createobj();
// I'm assuming that was supposed to be "m_obj = B::createBobj();"
}
B& m_obj;
};
Obviously doesn't compile so
Obviously. :-)
In class A i want to hold a reference to an instance of class B
created by the
factory method createBObj. i can't initialise my reference member in
constructor as
class A needs to do some other initialisation before creating instance
of B.
So how to solve this problem?
Lastly, I'm assuming you can't change class B, and that B has proper
copy construction semantics...
class A {
B m_obj;
void func() {
m_obj = B::createBobj();
}
};
It will not hold the exact instance created by createBobj(), but it will
hold an instance that is in the same state.
Or did I make too many assumptions... :-)