RE: [gtkmm] Obtaining a pointer to an object



Miller, Ryan D wrote:
> Is there a way to obtain a pointer from an object to other objects 
> that
> have been created by the same parent (without passing the pointers as 
> arguments)?  I need to obtain a reference to an object in order to use

> sigc::mem_fun to connect a signal to another class.  Both of the
classes 
> have the same parent window.  I was looking at the get_toplevel and 
> get_ancestor calls, but I don't think they'll work.  Does anyone have 
> any suggestions or some short example code?
> 

	Usually you'd do that by passing a reference to the parent
object as a 
	constructor argument to the child object, and then have the
child object 
	ask the parent object for references to other objects. Something
like:

	class ChildA;
	class ChildB;

	class Parent
	{
	     ChildA* child_a;
	     ChildB* child_b;

	     Parent() {
	         child_a = new ChildA(*this);
	         child_b = new ChildB(*this);
	     }
	     ChildB& getB() {
	         return *child_b;
	     }
	};
	
	class ChildA
	{
	     ChildA(Parent& parent) {
	         ChildB& child_b = parent.getB();  // Get reference to
sibling
	     }
	};

	--
	Christer Palm
---------

That sounds like a simple solution I'll hack in for now.  Thanks
Christer!  What I was hoping for was a way to not need to rely on having
the parent class having accessors to each class pointer.  Eventually,
everything will be declared dynamically as needed, so I was hoping there
might be something I could use in Gtk (like Gtk::manage) that kept track
of the objects and their hierarchy.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]