Oberon-2
Yes, you're catching the idea I was trying to convey: "Class Constructs and
Data Encapsulation", as it's often called. Which brings up the idea that you
have a LOT of new terminology to digest when you go to an OO language.
For example, a bundle of data and associated code (an "object" whose
structural definition is called a "class") exchanges "messages" with external
parts of the program.
Something that makes casual reading of a program difficult is the concept of
"operator overloading". Just as within Basic the "+" operator might mean more
than one thing (addition or concatenation), the C++ language allows – or
insists on – extensive operator overloading, so that one object can interact
with another in some definable way. In particular, the C "bit shift" operator
'<<' gets a lot of reuse.
Anyway, have fun with your upcoming training session.
–Jim