Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ Widgets - General questions or Mixed problems » Access to parent class
Re: Access to parent class [message #52849 is a reply to message #52847] Thu, 12 December 2019 10:33 Go to previous messageGo to previous message
mirek is currently offline  mirek
Messages: 13980
Registered: November 2005
Ultimate Member
koldo wrote on Wed, 11 December 2019 10:31
Sometimes it is necessary for a child to get access to some data from a parent class. Specially in a multiple TopWindow project, parent pointer cannot be saved in a static location, as there are some instances of it.

A solution could be to give as argument a pointer to the parent, and spread it through all children until the one that needs it.

However I wonder if this could be a finer solution:
template <class T>
T *GetDefinedParent(Ctrl *ths) {
	T *main;
	while (ths->GetParent() != nullptr) {
		ths = ths->GetParent();
		if ((main = dynamic_cast<T*>(ths)) != nullptr)
			return main;
	}
	return nullptr;
}

And used like this from a children:
MyParentClass *parent = GetDefinedParent<MyParentClass>(this);
ASSERT(class);

int neededParameter = ~parent->importantParameter;

What do you think?


I am using this approach here and there, but never seemed like worthwhile addition to Core.h...
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: GLDrawDemo NOGTK doesn't work
Next Topic: [SOLVED] Dual GlCtrl in one frame ?
Goto Forum:
  


Current Time: Tue May 14 10:04:32 CEST 2024

Total time taken to generate the page: 0.02475 seconds