Interfaces in C++
In the previous section, we saw how to define a method that is virtual, and how the compiler will do dynamic dispatch when calling it.
We have also talked about interfaces throughout the chapter, but we never specified what an interface is.
An interface is a way for the code to specify a contract that the caller needs to provide to be able to call some functionality. We looked at an informal definition when talking about the templates and the requirements they impose on the types used with them.
Functions and methods which accepts parameters as interface are a way of saying: in order to perform my actions, I need these functionalities; it's up to you to provide them.
To specify an interface in C++, we can use an Abstract Base Class (ABC).
Let's dive into the name; the class is:
Abstract: This means that it cannot be instantiated
Base: This means it is designed to be derived from
Any class that defines a pure virtual method is abstract. A pure virtual method is a virtual method...