I've been preparing some new C++ notes, in particular showing how you can create an array of objects of different derived types, and then call methods on each object and have the run time environment select which particular piece of code is to be run each time around a loop (experienced OO programmers will recognise this as a description of
polymorphism)
So many of the textbooks seem to make what is (I admit) always quite a complex example even more complex ... to the extent that newcomers really can neither understand polymorphism nor how it works in C++; "fools rush in" as they say, and I have tried.
A base class of Shape gives rise to two derived classes - Circle and Square.
An application called Polygon sets up an array of Circles and Squares, and uses a getarea method to find the area of each.
This getarea method is defined as a virtual method in the base class, so that an array of shapes CAN be defined on which two different getarea methods can be run depending on which type of shape is the current one at the time.
Source Code (written 2006-07-14, updated 2009-01-14)
Associated topics are indexed under
C233 - C and C based languages - OO in C++ - beyond the basics [3508] Destructor methods in C++ - a primer - (2011-11-05)
[3251] C++ - objects that are based on other objects, saving coding and adding robustness - (2011-04-17)
[3244] C and C++ - preprocess, compile, load, run - what each step is for - (2011-04-12)
[3142] Private and Public - and things between - (2011-01-22)
[3124] C++ - putting the language elements together into a program - (2011-01-08)
[3123] C++ objects - some short, single file demonstrations - (2011-01-07)
[3056] C++ - a complete example with polymorphism, and how to split it into project files - (2010-11-16)
[2845] Objects and Inheritance in C++ - an easy start - (2010-07-01)
[2577] Complete teaching example - C++, inheritance, polymorphism - (2010-01-15)
[1819] Calling base class constructors - (2008-10-03)
[1674] What a lot of files! (C++ / Polymorphism demo) - (2008-06-12)
[1572] C - structs and unions, C++ classes and polymorphism - (2008-03-13)
[1217] What are factory and singleton classes? - (2007-06-04)
[925] C++ - just beyond the basics. More you can do - (2006-11-14)
[831] Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13)
[798] References and Pointers in C++ - (2006-07-10)
C234 - C and C based languages - Further C++ Object Oriented features [3509] Operator Overloading, Exceptions, Pointers, References and Templates in C++ - new examples from our courses - (2011-11-06)
[3430] Sigils - the characters on the start of variable names in Perl, Ruby and Fortran - (2011-09-10)
[3238] Bradshaw, Ben and Bill. And some C and C++ pointers and references too. - (2011-04-09)
[3069] Strings, Garbage Collection and Variable Scope in C++ - (2010-11-25)
[3057] Lots of things to do with and within a C++ class - (2010-11-16)
[2849] What are C++ references? Why use them? - (2010-07-02)
[2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
[2673] Multiple Inheritance in C++ - a complete example - (2010-03-12)
[2576] What does const mean? C and C++ - (2010-01-15)
[2005] Variables and pointers and references - C and C++ - (2009-01-23)
[2004] Variable Scope in C++ - (2009-01-22)
[1159] It can take more that one plus one to get two. - (2007-04-22)
[802] undefined reference to typeinfo - C++ error message - (2006-07-15)
Some other Articles
Melksham Carnival ParadeThe Courts, HoltNot shoutingSimple polymorphism example - C++Effective web campaign?The case for exceptionsWriting up new C / C++ notes.Busy day in Melksham