Anatomy of Inheritance CSCE 121 A base class

Anatomy of Inheritance CSCE 121

A base class My. Class { private: // data, usually int important. Num; public: My. Class(); // constructor(s) My. Class(int important. Num); }; // interface functions

An inherited class My. Inherited. Class: public My. Class { private: // data, usually public: My. Inherited. Class(); // constructor(s) // interface functions };

Member access Not acces sible outs ide My. Cla not even i ss, n classes d erived from My. C lass class My. Class { private: // data, usually int important. Num; public: My. Class(); // constructor(s) My. Class(int important. Num); }; // interface functions

Member Access class Automobile { private: int model. Year; string make; public: //. . . }; class Hybrid: public Automobile { private: double battery. Cap; public: //. . . } ke! a m r o r a e l. Y e d o m s s e c ac t o n n a c d i Hybr

Member Access: protected class Automobile { private: //. . . protected: int model. Year; string make; public: //. . . }; class Hybrid: public Automobile { private: double battery. Cap; public: //. . . } e! k a m d n a r ea Y l e d o m s s e c c a N A C d i Hybr

Member access in Inherited Classes Access Type public protected private Within class yes yes Derived classes yes no Outside of class yes no no

Not everything gets inherited. . . • Constructors • Base class’s default constructor automatically called by constructors of derived classes • Best to call the one you want / need. • The function operator= (if it was overloaded in base class)

Constructors in Inherited Classes class My. Inherited. Class: public My. Class { private: //. . . public: My. Inherited. Class() {} //. . . }; o t l l a c t i c i Impl . r o t c u r t s n o c t l u a f e d s s a l c base

Constructors in Inherited Classes class My. Inherited. Class: public My. Class { private: //. . . public: My. Inherited. Class() : My. Class() {} My. Inherited. Class(int important. Num) : My. Class(important. Num) {} }; //. . . r o t c u r t s n o c s s a l c e s a b o t. s l d l a e c d t e i e c n s i t Expli a h w h c t a m t tha

Calling parent constructor in initialization list class Hybrid: public Automobile { private: double battery. Cap; public: Hybrid(string make, int model. Year, double battery. Cap) : Automobile(make, model. Year), battery. Cap(battery. Cap) {} };

Types of Inheritance (relative to derived class) • Public • Base class public members -> public here • Base class protected members -> protected here • Protected • Base class public and protected members -> protected here • Private • All base class members -> private here
- Slides: 12