Skip to main content

Templates versus Inheritance

Programmers sometimes find it tricky to decide whether to use templates or inheritance. Here are some tips to help you make the decision.

Use templates when you want to provide identical functionality for different types. For example, if you want to write a generic sorting algorithm that works on any type, use templates. If you want to create a container that can store any type, use templates. The key concept is that the templatized structure or algorithm treats all types the same.

When you want to provide different behaviors for related types, use inheritance. For example, use inheritance if you want to provide two different, but similar, containers such as a queue and a priority queue.

Inheritance gets quite useful when designing user interface components -- e.g. when your Application Window inherits from general Window (this type of relationship is called is-a relationship and it's one of the major uses of inheritance).

Similarly for mathematical applications -- say, you want to maximize a function of type y = f(x1, x2, x3). You can do this using various algorithms -- so you can think of implementing a solver with one abstract base class Maximizer w/ virtual member function Solve() and then implement various algorithms as subclasses like BFGS_Maximizer, SimulatedAnnealing_Maximizer, etc. where you implement the actual Solve() member functions.

Another example is mix-in classes, when you want to express your object is "able" to do something -- e.g. a Button is Click able, a Picture is Printable and Zoom able -- here, inheritance (esp. multiple inheritance) comes in handy.


Comments

Popular posts from this blog

All songs notation and chords at one place

Song : O Saathi Re Film : Mukhathar Ka Sikkandhar Uses : C D D# E G A Note : The numbers at the end of the lines indicate line numbers. Pallavi: O saathi re, tere binaa bhi kya jina, tere binaa bhi kya jina A- C D D#....,D D C DD E...C..CA-...,D D C DD E...CC.......1 Play line 1 again phulon men khaliyon men sapnom ki galiyon men GGG...GAGE.. GGG G A G E.................................................2 tere bina kuchh kahin naa E A G E D C D D#.......................................................................3 tere binaa bhi kya jina, tere binaa bhi kya jina D D C DD E....C..CA-..., D D C DDE....CC.............................4 Charanam: har dhadkan men, pyaas hai teri, sanson men teri khushboo hai CCC C D C A-, CCC C D C A-, DDD DED CD EE.. CCCC......................5 is dharthi se, us ambar tak, meri nazar men tu hi tu hai CCC C D C A-, CCC C D C A-, DDD DED CD EE.. CCCC......................6 pyaar yeh tute naa GGG... GAG D#......E............................

sql server 2008 r2 installation error on 64 bit

Dear friends , Please make your comment on following error  Error in installing Microsoft SQL Server 2008 R2 Enterprise on Windows Server 2008 Enterprise server R2,Always my all services is not running ,have done installation with repaired option but not able to solved this issue ,even in The installation of single computer mode of AX R2 ,Getting the error of SQL Server update SP1 because of this failed services. Overall summary: Final result: Failed: see details below Exit code (Decimal): -2068578302 Exit facility code: 1204 Exit error code: 2 Exit message: Failed: see details below Start time: 2014-01-01 22:10:21 End time: 2014-01-01 22:23:58 Requested action: Repair Log with failure: C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20140101_220847\Detail.txt Exception help link: http%3a%2f%2fg...

Windows edition and version list

Windows 10 (business edition), version 1803 (updated Aug 2018) Windows 10 (business edition), version 1803 (updated Sept 2018) Windows 10 (business editions), version 1803 (updated April 2019) Windows 10 (business editions), version 1803 (updated Jan 2019) Windows 10 (business editions), version 1803 (updated July 2018) Windows 10 (business editions), version 1803 (updated July 2019) Windows 10 (business editions), version 1803 (updated June 2019) Windows 10 (business editions), version 1803 (updated March 2018) Windows 10 (business editions), version 1803 (updated March 2019) Windows 10 (business editions), version 1803 (updated May 2019) Windows 10 (business editions), version 1809 (updated April 2019) Windows 10 (business editions), version 1809 (updated Dec 2018) Windows 10 (business editions), version 1809 (updated Feb 2019) Windows 10 (business editions), version 1809 (updated Jan 2019) Windows 10 (business editions), version 1809 (updated July 2019) Windows 10 (b...