title: Access specifiers and virtual functions
body: <p>What are the rules for accessibility when virtual functions are declared under 3 different access specifiers specified by C++(public, private, protected)
  What is the significance of each? Any simple code examples to explain the concept will be highly useful.</p>