What is a good way to design a class? I’m trying to create a simple chat program. I want everything the objects in the screen use to be encapsulated. I’ve created a few classes, a logging class, a message pile class (for holding the messages which have been received and sent), a textbox class, and a button class. I want the message pile, the textbox, and the button to share the same string variable, except I want it encapsulated within the classes.
I did try creating a Base class. This would hold all the data and functions common to the textbox and button classes. Those three classes would derive from Base to use its shared variable. Only when I did this the variable was not shared. Is there a way to do this? Kind of like a global variable? Only within its own class and its derived ones? Both objects of the two derived classes should be able to access the Base class object’s variables.
You are mixing up classes and objects. When you have a base class with some member variable then all derived classes can (potentially) access the member variable in the base class.
However when you instantiate the different derived classes, or one of them multiple times, then each object has a complete independent set of member variables, including the ones from the base class, because that’s exactly what an object is.
If you want certain groups of objects to use the same “shared” variables then you could stick these shared things into a dedicated “shared” class. Then for each group of objecst that need to share these “variables”, you create an instance of this “shared” class, and pass it to all of the objects in the group.
This is also more flexible than fiddling around with “static” class members, or whatever they are called in the language you are using, because you can have multiple of these “groups” of objects by having multiple “shared” objects and deciding exactly which “actual” objects share the same “shared” data/variables.
Without knowing more about what’s going on it’s hard to give any more recommendations on how to design the class and object hierarchy.