Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: SQL
Expertise: Beginner
May 29, 1997



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Referencing instances of classes

How do classes communicate?

If class A created one or more instances of class B and class C, how can class A keep track of all the instances of classes B and C, and how can class A list them in order for a user to be able to perform operations on some of the instances (comparing which one has the smallest value)? And vice-versa: How can the new class B and C tell class A if there was a change of state?

Keep in mind that a class does not exist in and of itself; it lives only in its instance. Therefore, you cannot communicate to an object class itself at runtime. Class instances in OPO do not have creation and destruction events and cannot be dynamically instantiated, so you will have to have a work-around of sorts to implement this functionality.

It sounds like you want a single controlling instance that is aware of what is going on in other class instances. In this situation, I would start by creating a user-defined variable at the application level with a data type of Object. Make sure the 'controlling' instance is created before any of the other instances, and set a user-defined variable to the window handle of the instance. After the variable is set, subsequent instances can communicate with the controller class through the window handle.

You could communicate to the child instances by having a user-defined variable as part of the instance, walking through the objects in a form (or forms) and using the HasProperty operator to check for the existence of the variable for each object.

Keep in mind that objects are not destroyed. Even when a window is closed, they continue to exist in memory in case the application needs to access them. You may want to set a user-defined property on the child instances to indicate whether that instance is actually 'alive.'

DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date