One of the key features of the object oriented paradigm is that it provides a system through which code that's naturally associated with one type of data is accessed through a single closely defined and controlled set of calls (its API / Application Programmer Interface) ... so it's natural on a larger project for each data type or group of data types to be separated into their own project / file(s) / teams, allowing for semiasynchronous maintainance. In other words - split, data type by datatype, into managable chunks.
What a great principle! But for a small demo on a course, splitting into multiple files would cause an awful lot of window switching that would obfuscate the initial logic and design elements (or call for an awful lot of projection screen estate!).
So - from yesterday's C++ course - three Object Oriented Examples in C++ which are built in single files, with strong comment lines indication where the application will naturally split across files later.
Firstly principle of an object
- a tiny program which does no more that create a really basic object with a property, then look up that property. That's followed by multiple classes and polymorphism, C++ style
; virtual methods in a base class, an array of object pointers, and calls to methods of the same name, but in different classes, which the language itself resolves dynamically at runtime. The final one of these three examples shows some more advanced features such as overloading and deconstructors
- things which you'll need from time to time, but not often in such a short program as this.
Rather than continue to grow this example, I illustrated the technique for comparing objects in C++ in a separate example [here]
at the end of the day - that brought in a static method to the equation too. There's a fuller description of that [here]
, and a further source example - showing it split into multiple files (what I'll be doing from 9 a.m. this morning) [here]
. (written 2011-01-07, updated 2011-01-08)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesC233 - C and C based languages - OO in C++ - beyond the basics 
Extended and Associated objects - what is the difference - C++ example - (2013-01-18) 
Associated Classes - using objects of one class within another - (2012-07-21) 
Destructor methods in C++ - a primer - (2011-11-05) 
C++ - objects that are based on other objects, saving coding and adding robustness - (2011-04-17) 
C and C++ - preprocess, compile, load, run - what each step is for - (2011-04-12) 
Private and Public - and things between - (2011-01-22) 
C++ - putting the language elements together into a program - (2011-01-08) 
C++ - a complete example with polymorphism, and how to split it into project files - (2010-11-16) 
Objects and Inheritance in C++ - an easy start - (2010-07-01) 
Complete teaching example - C++, inheritance, polymorphism - (2010-01-15) 
Calling base class constructors - (2008-10-03) 
What a lot of files! (C++ / Polymorphism demo) - (2008-06-12) 
C - structs and unions, C++ classes and polymorphism - (2008-03-13) 
What are factory and singleton classes? - (2007-06-04) 
C++ - just beyond the basics. More you can do - (2006-11-14) 
Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13) 
Simple polymorphism example - C++ - (2006-07-14) 
References and Pointers in C++ - (2006-07-10)
Some other Articles
Burger me!Car Parking in Melksham - thoughts on the proposed scheme, and wider thoughts tooThe family is defunct. Long live the family.C++ objects - some short, single file demonstrationsWhen is a program complete?New year, new C CourseLearning to write good programs in C and C++ - separating out repeated codeTransWilts - some things to see and doArrays of arrays - or 2D arrays. How to program tables.