Final answer:
Dynamic binding is a concept where the method to be called is determined at runtime and is enabled through the use of virtual methods. A pure virtual function indicates that a derived class must provide an implementation, making its containing class abstract. Dynamic binding facilitates polymorphism and does not relate to access controls.
Step-by-step explanation:
Dynamic binding, also known as late binding, is a concept in object-oriented programming where the method that is called on an object is determined at runtime, rather than compile time. In dynamic binding, if a method is defined as virtual, it means the method can be overridden by derived classes and the specific implementation invoked will be determined when the program is running, based on the type of the object it is being called on. This allows for polymorphism, where different objects can be treated as instances of their parent class but still respond to the same function calls in different ways.
Additionally, a pure virtual function is a virtual function with no implementation provided in the base class; it only serves to specify that derived classes must provide an implementation. A class containing at least one pure virtual function is considered an abstract class, meaning it cannot be instantiated on its own and is intended to be a base class for other classes.
Dynamic binding provides a flexible architecture for software, enabling more robust and maintainable code. It does not provide extensive access controls; access control is managed through other mechanisms in object-oriented programming.