Inheritance Friendship Polymorphism Exceptions Template Operator Overloading