QUIZ 8
- Describe the concepts virtual functions and dynamic binding.
- Virtual Functions
- Typically, pointer-class determines functions
- virtual functions; object (not pointer) determines function called
- Program determines proper (say draw) function at run time (dynamically)
- Treat all shapes generically
- Declare draw as virtual in base class
- Override draw in each derived class; like redefining, but new function must have same signature
- Once declared virtual, virtual in all derived classes; good practice to explicitly declare virtual
- Dynamic binding
- Choose proper function to call at run time
- Only occurs off pointer handles; if function called from object, uses that object"s definition
- Base-class pointer to derived-class object; will call derived-class function
- Decsribe the concepts abstract class and concrete class.
- Abstract classes
- Sole purpose: to be a base class (called abstract base classes)
- Incomplete; derived classes fill in ``missing pieces''
- Cannot make objects from abstract class; however, can have pointers and references
- Abstract classes not required, but helpful
- To make a class abstract, Need one or more ``pure'' virtual functions
- Regular virtual functions; have implementations, overriding is optional
- Pure virtual functions; no implementation, must be overridden
- Concrete classes
- Can instantiate objects
- Implement all functions they define
- Provide specifics
2004-12-31