Question:
I have a linked list class whose private data members I want to access and initialise through a dialog box generated through the VC++ wizard. Debugging gives me an error, as private data member not accessible.
Answer:
You didn’t mention which class you were using, so I can just offer some general advice.
The key feature of C++ classes is the ability to implement hidden class members. By encapsulating functionality within a class and only exposing a well-defined public interface, you can enforce how the class is used.
Not only does this make it easier to use a class, but it also makes it easier to write and maintain a class. For example, let’s say you write a linked list class and keep the actual data structures private. If, down the road, you decide that the linked list should work directly with files instead of RAM memory, you could easily change it without worrying about breaking code that uses the class.
In fact, if your public interface was well-designed, you could probably make the change without the need to make any changes to code that uses the class. This makes it much easier when writing large programs. Classes let you clearly separate different parts of your program allowing you to focus on just one of those parts.
Of course, to be useful, the functionality of the class must be made available. If you are using one of the MFC classes, then there will be some public methods that you should use to access data and otherwise manipulate the list. Refer to the online help for more information about the class you are using.