Upcoming SlideShare
×

# Lec 30.31 - inheritance

206 views
184 views

Published on

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
206
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
11
0
Likes
0
Embeds 0
No embeds

No notes for slide
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• Student Book
• ### Lec 30.31 - inheritance

1. 1. Chapter: 09 Inheritance Lecture: 30 & 31 Date: 08.10.2012
2. 2. Inheritance:Base and Derived Classes Inheritance is the process of creating a new classes (derived classes) from existing classes (based classes).
3. 3. Inheritance:Base and Derived Classes
4. 4. Inheritance: Advantages Permits code reusability Reusing existing code saves time and money and increases a program’s reliability
5. 5. Inheritance: Shapes PolygonRectangle Triangle
6. 6. No-Inheritance: Shapes class Rectangle{ Polygon private: int numVertices; int xCoord, yCoord; public:Rectangle void set(int x, int y, int nV); Triangle int area(); };class Polygon{ private: class Triangle{ int numVertices; private: int xCoord, yCoord; int numVertices; int xCoord, yCoord; public: public: void set(int x, int y, int nV); void set(int x, int y, int nV); int area(); int area();}; };
7. 7. Inheritance: Shapes class Polygon{ Polygon protected: int numVertices; float xCoord, yCoord; public: void set(int x, int y, int nV); };Rectangle Triangle class Rectangle : public Polygon{ public: int area(); };
8. 8. Inheritance: Shapes class Polygon{ Polygon protected: int numVertices; float xCoord, yCoord; public: void set(float x, float y, int nV); }; Rectangle Triangleclass Triangle : public Polygon{ class Rectangle : public Polygon{ public: public: int area(); float area();}; };
9. 9. Inheritance: Syntax Syntax: class DerivedClassName : access-level BaseClassName where  access-level specifies the type of derivation  private by default, or  Public Any class can serve as a base class  Thus a derived class can also be a base class
10. 10. Inheritance: Syntax Syntax: class DerivedClassName : access-level BaseClassNameExample: class BaseClass { } class DerivedClass: public BaseClass { }
11. 11. Access Specifier without Inheritance
12. 12. Access Specifier with Inheritance
13. 13. Inheritance and Accessibility
14. 14. Overriding member functions Member functions in a derived class can have the same names as in the base class When the same function exists in both the base and derived classes, the function in the derived class will be executed.  In order to call a function in the base class use the use the scope resolution operator, e.g., Stack :: push() Name Scope Call to a member function (base class) resolution in base class
15. 15. Stack Applications Memory management Tower of Hanoi
16. 16. Stack Applications Converting a decimal number to binary
17. 17. Inheritance: Shapes x class Point{ Point y protected: int x, y; public: Circle 3D-Point void set (int a, int b); x x }; y y r zclass Circle : public Point{ class 3D-Point: public Point{ private: private: double r; int z;}; };