Defining A Class Hierarchy In C