
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 articles
C233 - C and C based languages - OO in C++ - beyond the basics [798] References and Pointers in C++ - (2006-07-10)
[801] Simple polymorphism example - C++ - (2006-07-14)
[831] Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13)
[925] C++ - just beyond the basics. More you can do - (2006-11-14)
[1217] What are factory and singleton classes? - (2007-06-04)
[1572] C - structs and unions, C++ classes and polymorphism - (2008-03-13)
[1674] What a lot of files! (C++ / Polymorphism demo) - (2008-06-12)
[1819] Calling base class constructors - (2008-10-03)
[2577] Complete teaching example - C++, inheritance, polymorphism - (2010-01-15)
[2845] Objects and Inheritance in C++ - an easy start - (2010-07-01)
[3056] C++ - a complete example with polymorphism, and how to split it into project files - (2010-11-16)
[3124] C++ - putting the language elements together into a program - (2011-01-08)
[3142] Private and Public - and things between - (2011-01-22)
[3244] C and C++ - preprocess, compile, load, run - what each step is for - (2011-04-12)
[3251] C++ - objects that are based on other objects, saving coding and adding robustness - (2011-04-17)
[3508] Destructor methods in C++ - a primer - (2011-11-05)
[3811] Associated Classes - using objects of one class within another - (2012-07-21)
[3979] Extended and Associated objects - what is the difference - C++ example - (2013-01-18)
[4356] Object factories in C++, Python, PHP and Perl - (2014-12-19)
[4375] Final examples for 2014 - and a look at our 2015 training course options - (2014-12-31)
[4377] Designing a base class and subclasses, and their extension, in C++ - (2015-01-01)
[4559] When do I use the this keyword in C++? - (2015-10-29)
[4560] Variables, Pointers and References - C and C++ - (2015-10-29)
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.