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 17:15:11)
Associated topics are indexed under
C233 - C and C based languages - OO in C++ - beyond the basics [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 [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)
[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