Introduction to C++ Introduction to C++ Dr Alex Martin 2013 Slide 1
|
|
- Bruce Bryce Snow
- 6 years ago
- Views:
Transcription
1 Introduction to C++ Introduction to C++ Dr Alex Martin 2013 Slide 1
2 Inheritance Consider a new type Square. Following how we declarations for the Rectangle and Circle classes we could declare it as follows: class Square{ double side; public: // // constructors and destructor // Square(double s):side(s){} ~Square(){}; // double Area() const; void Print() const; }; Introduction to C++ Dr Alex Martin 2013 Slide 2
3 Inheritance This works, but is somewhat unsatisfactory, because it means that we have to declare and define functions for a completely new class, whilst we know that a Square shares much in common with a Rectangle. In fact we can consider a Square as a special type of Rectangle. Similarly whilst Circles are not Rectangles (or vice versa) both can be considered specializations of some more general Shape class. These relationships may be illustrated in follows: Introduction to C++ Dr Alex Martin 2013 Slide 3
4 Inheritance Introduction to C++ Dr Alex Martin 2013 Slide 4
5 Inheritance Notice that in spoken English these relationships would be typically indicated by the phase "is a". In OO terminology, Shape is said to be a base class (superclass) of Rectangle (and Circle and Square). Square is said to be a derived class (subclass) of Rectangle. Recognition of such inheritance relationships typically allows one to simplify problems. There are several benefits: Allows common code to be associated with a base class and therefore kept common. Allows all objects of related classes (i.e. those that share a common base class) to be treated in a common way e.g. treat Circles,Rectangles and Squares as shapes. Introduction to C++ Dr Alex Martin 2013 Slide 5
6 Inheritance How to Implement Inheritance in C++ To declare a class Square derived from class Rectangle one uses the follow syntax: class Square: public Rectangle{ public: // // constructors and destructor // Square(double s):rectangle(s,s){} ~Square(){}; // void Print() const; }; Introduction to C++ Dr Alex Martin 2013 Slide 6
7 Inheritance Such an class is illustrated in the program square.cpp. Here the public Rectangle declaration specifies that the Square class is derived from Rectangle. Notice how the constructor for the Square class uses the constructor for the Rectangle class to initialize its private data. The Square(double s):rectangle(s,s) syntax is an extension of the syntax used to initialize data members. In general a derived class will inherit all of the members (both data and functions) of its base class and usually add some more specialized functions of its own. This means, for example, that objects of type Square may use the function Area() which is declared in Rectangle In some cases the member functions declared in the base class are inappropriate for a derived class, for example, in this case of the Square class we would not want to use the Print function derived in the Rectangle base class. In order to prevent this it is possible to override a method (function) in a base class, by providing a replacement version in a derived class i.e. Square::Print() Introduction to C++ Dr Alex Martin 2013 Slide 7
8 Inheritance Protected Members When we first introduced classes we discussed public and private member access. With the use of inheritance, a third access qualifier, protected, is relevant. protected members are exactly like private members except they are accessible in member functions of a derived class. N.B. private members are NOT accessible in a derived class. Introduction to C++ Dr Alex Martin 2013 Slide 8
9 Inheritance Pointers and References to Inherited Class Objects When we have talked about pointers to class objects we noted that pointers to objects were specific in their type. This is also true for references With objects of inherited class types certain pointer conversions are legal. In particular, if one has an object of a derived class then it is perfectly legal (and often useful) to construct a pointer (or reference) to a base type referring to it. For Example, Square sq(10.0); Rectangle* p = &sq; Rectangle& r = sq; This good and legal code because a Square is a Rectangle The pointer or reference will behave just like any other Rectangle pointer or reference. This is one of the few places in C++ where pointer type casts are valid (and safe). Introduction to C++ Dr Alex Martin 2013 Slide 9
10 Inheritance N.B. Alhought one can generally convert a pointer (or reference) to a derived class to a base class. The reverse is not possible. In general it is NOT legal to convert a pointer (or reference) to a base class object to a pointer (or reference) of a derived class object. This is because e.g. not all Rectangles are Squares. Introduction to C++ Dr Alex Martin 2013 Slide 10
11 Inheritance The nice thing about accessing objects via pointers or references of their base class type is that one may group together related objects and treat them in a similar way. e.g. Put pointers to them in a linked list or array. So for example, if we declare an array of pointers-to-rectangles, we can store a collection of different objects. Square objects (and any other class derived from Rectangle) can be stored via pointers. Rectangle* p[4]; p[0] = new Rectangle(10.0,20.0); p[1] = new Square(10.0); Introduction to C++ Dr Alex Martin 2013 Slide 11
12 Inheritance We may also write functions which have a pointer or reference to a base type as a argument and use them with derived types. Draw( Rectangle& shape ); Rectangle r(10.0,20.0); Square s(10.0); Draw(r); Draw(s); Introduction to C++ Dr Alex Martin 2013 Slide 12
13 Polymorphism Polymorphism and Virtual Functions There is complication with referring to objects via pointers to their base class type. Suppose I assign a pointer-to-a Square to a pointer-to-a Rectangle: Square sq(10.0); Rectangle* p = &sq;... p -> Print(); The function call p -> Print() uses the function Rectangle::Print() rather than Square::Print(). This is demonstrated in the example squarep.cpp This is not always what one wants! Introduction to C++ Dr Alex Martin 2013 Slide 13
14 Polymorphism As usual C++ provides a solution. This is to convert Rectangle (and Square) into so called polymorphic types using virtual functions. If the function Print() is declared virtual in the Rectangle base class: class Rectangle{ double width; double height; public: // // constructors and destructor // Rectangle(double w, double h):width(w),height(h){} virtual ~Rectangle(){}; // destructor // double Area() const; virtual void Print() const; }; Introduction to C++ Dr Alex Martin 2013 Slide 14
15 Polymorphism With such a class declaration, the Square class can still be derived in the same way. However, if a pointer-to-a Rectangle (p) is now assigned the address of a Square object then p -> Print() will call Square::Print(). The program sqarrayv.cpp demonstrates this. N.B. notice that the destructor is also declared virtual, it is a good idea to always do this for polymorphic types. Such polymorphic types retain run-time information which allow their correct identity to be preserved, even if they are referenced via a pointer type. (Usually achieved by storing in class objects a special pointer to the so-called virtual function table (v-table) ) Introduction to C++ Dr Alex Martin 2013 Slide 15
16 Polymorphism Pure Virtual Functions and Abstract Classes Sometimes it is very useful to define an abstract base class which defines a set of interface functions to a hierarchy of object types, but which it makes no sense to instantiate (actually create objects of the type). Such classes can be declared by specifying some (or all) of the member functions to be pure virtual. e.g. the Shape class needs to declare interface functions Area and Print but is an abstract class that one doesn't actually create objects of. A suitable declaration would be: class Shape{ public: Shape(){} virtual ~Shape(){} virtual double Area() const = 0; virtual void Print() const = 0; }; The = 0 syntax on a virtual function specifies it is pure Introduction to C++ Dr Alex Martin 2013 Slide 16
17 Polymorphism Whilst such Shape can not be directly created. concrete classes such as Rectangle and Circle can be derived from Shape and used to instantiate objects providing they override and implement all of the pure virtual functions in their base class. Importantly it is still valid to use a pointer-to-a Shape type to refer to any of the polymorphic types derived from Shape, and to call its virtual functions. Introduction to C++ Dr Alex Martin 2013 Slide 17
18 Introduction to C++ Templates One key C++ advanced feature is the concept of Templates. Templates provide direct support for generic programming, that is programming using types as parameters The C++ template mechanism allows a type to be a parameter in the definition of a function or a class. A function template is useful when one want to be able to define a function which works in the same way for many different, possibly unrelated, types (where a type is one of the built in types such as int or a class). A templated class is generally used when one needs to define a container class which is defined for objects of different types. Such containers could be things like linked lists and stacks Introduction to C++ Dr Alex Martin 2013 Slide 18
19 Introduction to C++ Templates Function Templates Consider the function: int max ( int x, int y ){ if ( x > y ){ return x; } else { return y; } } Introduction to C++ Dr Alex Martin 2013 Slide 19
20 Introduction to C++ Templates This requires its input arguments are of type int if we wanted to have a similar function which works of another type, double say, we would have to define it as well double max ( double x, double y ){ if ( x > y ){ return x; } else { return y; } } This would work, but it would clearly be silly if had to define many such identical functions working on different types. This is where templated functions are useful. Introduction to C++ Dr Alex Martin 2013 Slide 20
21 Introduction to C++ Templates Instead of defining two or more such type dependent functions, we may provide the following function template: template <class T> T max ( T x, T y ){ if ( x > y ){ return x; } else { return y; } } This template definition is defining a parameter T which can represent any possible type (including classes). Given this definition the compiler will automatically be able to build versions of the max which will find the maximum of two variables of type int, float, char etc. In fact it will work for any type/class for which the operator> is defined. Introduction to C++ Dr Alex Martin 2013 Slide 21
22 Introduction to C++ Templates Once we have defined the templated function we can use members of the family of functions in the same way as we would if they had been defined in the traditional way as show in the example max.cpp cout << " max ( 1, 2 ) = " << max(1,2) << endl; cout << " max ( 1.0, 2.0 ) = " << max(1.0,2.0) << endl; cout << " max ( 'a', 'z' ) = " << max('a','z') << endl; The complier builds each of the different functions which are used in the program. Introduction to C++ Dr Alex Martin 2013 Slide 22
23 Introduction to C++ Templates Class Templates Class templates allow one to define data types which act as containers which can store other types in a generic way. To illustrate the use of a class template, we consider the implementation of a stack container. A stack is a simple data structure in which elements are added and removed from its top using a First-in Last-out formalism. A stack needs to have two functions defined push which adds an element to the top of the stack and pop which removes the element of the top of the state. A stack pointer (not necessarily a C++ pointer) keeps track of the top of the stack. Introduction to C++ Dr Alex Martin 2013 Slide 23
24 Introduction to C++ Templates The diagram shows a stack in which the following actions are taken: A number 1 is Pushed onto the stack A number 2 is Pushed onto the stack The last number 2 is Popped off the stack A number 3 is Pushed onto the stack Introduction to C++ Dr Alex Martin 2013 Slide 24
25 Introduction to C++ Templates The following definition taken from the example stack.cpp declares a generic stack class using a template. template < class T > class Stack { int size; // max elements in stack int top; // location of top element T* stackptr; // pointer to the stack public: Stack ( int _size=10 ); // ctor ~Stack(); // dtor int push( const T& ); // push element onto stack int pop( T& ); // pop element off stack }; Introduction to C++ Dr Alex Martin 2013 Slide 25
26 Introduction to C++ Templates With such a class one can declare and use a Stack on which ints can be stored. Stack< int > mystack(10); // Declare a stack to hold ints int i; mystack.push(1); // push 1 onto stack mystack.push(2); mystack.pop(i); // pop last entry off of stack mystack.push(3); Introduction to C++ Dr Alex Martin 2013 Slide 26
27 Introduction to C++ Templates And with the same templated class we can use a Stack on which doubles can be stored Stack< double > mystack(10); mystack.push( ); This should work for any class for which sensible copy constructor has been defined. Introduction to C++ Dr Alex Martin 2013 Slide 27
Inheritance, and Polymorphism.
Inheritance and Polymorphism by Yukong Zhang Object-oriented programming languages are the most widely used modern programming languages. They model programming based on objects which are very close to
More informationPOLYMORPHISM 2 PART. Shared Interface. Discussions. Abstract Base Classes. Abstract Base Classes and Pure Virtual Methods EXAMPLE
Abstract Base Classes POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors class B { // base class virtual void m( ) =0; // pure virtual function class D1 : public
More informationPOLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors
POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors CSC 330 OO Software Design 1 Abstract Base Classes class B { // base class virtual void m( ) =0; // pure virtual
More informationWhat is Polymorphism? Quotes from Deitel & Deitel s. Why polymorphism? How? How? Polymorphism Part 1
Polymorphism Part 1 What is Polymorphism? Polymorphism refers to a programming language s ability to process objects differently depending on their data type or class. Number person real complex kid adult
More informationPolymorphism Part 1 1
Polymorphism Part 1 1 What is Polymorphism? Polymorphism refers to a programming language s ability to process objects differently depending on their data type or class. Number person real complex kid
More informationC++ Crash Kurs. Polymorphism. Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck
C++ Crash Kurs Polymorphism Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer C++ Polymorphism Major abstractions of C++ Data abstraction
More informationFast Introduction to Object Oriented Programming and C++
Fast Introduction to Object Oriented Programming and C++ Daniel G. Aliaga Note: a compilation of slides from Jacques de Wet, Ohio State University, Chad Willwerth, and Daniel Aliaga. Outline Programming
More informationMidterm Exam 5 April 20, 2015
Midterm Exam 5 April 20, 2015 Name: Section 1: Multiple Choice Questions (24 pts total, 3 pts each) Q1: Which of the following is not a kind of inheritance in C++? a. public. b. private. c. static. d.
More informationObject-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1
Object-Oriented Languages and Object-Oriented Design Ghezzi&Jazayeri: OO Languages 1 What is an OO language? In Ada and Modula 2 one can define objects encapsulate a data structure and relevant operations
More informationC++ Programming: Polymorphism
C++ Programming: Polymorphism 2018 년도 2 학기 Instructor: Young-guk Ha Dept. of Computer Science & Engineering Contents Run-time binding in C++ Abstract base classes Run-time type identification 2 Function
More informationChapter 1: Object-Oriented Programming Using C++
Chapter 1: Object-Oriented Programming Using C++ Objectives Looking ahead in this chapter, we ll consider: Abstract Data Types Encapsulation Inheritance Pointers Polymorphism Data Structures and Algorithms
More informationThe mechanism that allows us to extend the definition of a class without making any physical changes to the existing class is called inheritance.
Class : BCA 3rd Semester Course Code: BCA-S3-03 Course Title: Object Oriented Programming Concepts in C++ Unit III Inheritance The mechanism that allows us to extend the definition of a class without making
More informationAbsolute C++ Walter Savitch
Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents
More informationPolymorphism. Zimmer CSCI 330
Polymorphism Polymorphism - is the property of OOP that allows the run-time binding of a function's name to the code that implements the function. (Run-time binding to the starting address of the code.)
More informationAbstract Classes. Abstract Classes a and Interfaces. Class Shape Hierarchy. Problem AND Requirements. Abstract Classes.
a and Interfaces Class Shape Hierarchy Consider the following class hierarchy Shape Circle Square Problem AND Requirements Suppose that in order to exploit polymorphism, we specify that 2-D objects must
More informationJava Object Oriented Design. CSC207 Fall 2014
Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code
More informationCS 162, Lecture 25: Exam II Review. 30 May 2018
CS 162, Lecture 25: Exam II Review 30 May 2018 True or False Pointers to a base class may be assigned the address of a derived class object. In C++ polymorphism is very difficult to achieve unless you
More informationMore About Classes CS 1025 Computer Science Fundamentals I Stephen M. Watt University of Western Ontario
More About Classes CS 1025 Computer Science Fundamentals I Stephen M. Watt University of Western Ontario The Story So Far... Classes as collections of fields and methods. Methods can access fields, and
More informationOBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe
OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++
More informationMore C++ : Vectors, Classes, Inheritance, Templates
Vectors More C++ : Vectors,, Inheritance, Templates vectors in C++ basically arrays with enhancements indexed similarly contiguous memory some changes defined differently can be resized without explicit
More informationCS250 Intro to CS II. Spring CS250 - Intro to CS II 1
CS250 Intro to CS II Spring 2017 CS250 - Intro to CS II 1 Topics Virtual Functions Pure Virtual Functions Abstract Classes Concrete Classes Binding Time, Static Binding, Dynamic Binding Overriding vs Redefining
More informationVIRTUAL FUNCTIONS Chapter 10
1 VIRTUAL FUNCTIONS Chapter 10 OBJECTIVES Polymorphism in C++ Pointers to derived classes Important point on inheritance Introduction to virtual functions Virtual destructors More about virtual functions
More informationSoftware Paradigms (Lesson 3) Object-Oriented Paradigm (2)
Software Paradigms (Lesson 3) Object-Oriented Paradigm (2) Table of Contents 1 Reusing Classes... 2 1.1 Composition... 2 1.2 Inheritance... 4 1.2.1 Extending Classes... 5 1.2.2 Method Overriding... 7 1.2.3
More informationInheritance Modes. Controlling Inheritance 1
Inheritance Modes Controlling Inheritance 1 When deriving a class D from a base class B, we may specify that access to the base class is any of the following: public, protected, private. The base class
More informationMore C++ : Vectors, Classes, Inheritance, Templates. with content from cplusplus.com, codeguru.com
More C++ : Vectors, Classes, Inheritance, Templates with content from cplusplus.com, codeguru.com 2 Vectors vectors in C++ basically arrays with enhancements indexed similarly contiguous memory some changes
More informationExtending Classes (contd.) (Chapter 15) Questions:
Extending Classes (contd.) (Chapter 15) Questions: 1 Virtual Functions in C++ Employee /\ / \ ---- Manager 2 Case 1: class Employee { string firstname, lastname; //... Employee( string fnam, string lnam
More informationCOEN244: Class & function templates
COEN244: Class & function templates Aishy Amer Electrical & Computer Engineering Templates Function Templates Class Templates Outline Templates and inheritance Introduction to C++ Standard Template Library
More informationInheritance and Overloading. Week 11
Inheritance and Overloading Week 11 1 Inheritance Objects are often defined in terms of hierarchical classes with a base class and one or more levels of classes that inherit from the classes that are above
More informationInheritance and Polymorphism
Division of Mathematics and Computer Science Maryville College Outline Inheritance 1 Inheritance 2 3 Outline Inheritance 1 Inheritance 2 3 The "is-a" Relationship The "is-a" Relationship Object classification
More informationChapter 14 Abstract Classes and Interfaces
Chapter 14 Abstract Classes and Interfaces 1 What is abstract class? Abstract class is just like other class, but it marks with abstract keyword. In abstract class, methods that we want to be overridden
More informationInheritance and Polymorphism
Division of Mathematics and Computer Science Maryville College Outline Inheritance 1 Inheritance 2 3 Outline Inheritance 1 Inheritance 2 3 The "is-a" Relationship Object classification is typically hierarchical.
More informationModule 10 Inheritance, Virtual Functions, and Polymorphism
Module 10 Inheritance, Virtual Functions, and Polymorphism Table of Contents CRITICAL SKILL 10.1: Inheritance Fundamentals... 2 CRITICAL SKILL 10.2: Base Class Access Control... 7 CRITICAL SKILL 10.3:
More informationIntro to OOP Visibility/protection levels and constructors Friend, convert constructor, destructor Operator overloading a<=b a.
Intro to OOP - Object and class - The sequence to define and use a class in a program - How/when to use scope resolution operator - How/when to the dot operator - Should be able to write the prototype
More informationComputer Science II CSci 1200 Lecture 24 C++ Inheritance and Polymorphism
Computer Science II CSci 1200 Lecture 24 C++ Inheritance and Polymorphism Review from Lecture 23 cs2set operations: insert, destroy, printing, erase Tree height calculation illustrates the use of recursion
More informationProgramming C++ Lecture 5. Howest, Fall 2013 Instructor: Dr. Jennifer B. Sartor
Programming C++ Lecture 5 Howest, Fall 2013 Instructor: Dr. Jennifer B. Sartor Jennifer.sartor@elis.ugent.be S Templates S Function and class templates you specify with a single code segment an entire
More information1B1b Inheritance. Inheritance. Agenda. Subclass and Superclass. Superclass. Generalisation & Specialisation. Shapes and Squares. 1B1b Lecture Slides
1B1b Inheritance Agenda Introduction to inheritance. How Java supports inheritance. Inheritance is a key feature of object-oriented oriented programming. 1 2 Inheritance Models the kind-of or specialisation-of
More informationECE 3574: Dynamic Polymorphism using Inheritance
1 ECE 3574: Dynamic Polymorphism using Inheritance Changwoo Min 2 Administrivia Survey on class will be out tonight or tomorrow night Please, let me share your idea to improve the class! 3 Meeting 10:
More informationObject Oriented Programming. Java-Lecture 11 Polymorphism
Object Oriented Programming Java-Lecture 11 Polymorphism Abstract Classes and Methods There will be a situation where you want to develop a design of a class which is common to many classes. Abstract class
More informationPolymorphism. Arizona State University 1
Polymorphism CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 15 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University
More informationInheritance, Polymorphism and the Object Memory Model
Inheritance, Polymorphism and the Object Memory Model 1 how objects are stored in memory at runtime? compiler - operations such as access to a member of an object are compiled runtime - implementation
More informationCS-202 Introduction to Object Oriented Programming
CS-202 Introduction to Object Oriented Programming California State University, Los Angeles Computer Science Department Lecture III Inheritance and Polymorphism Introduction to Inheritance Introduction
More informationC++ Templates. David Camp
C++ Templates David Camp C Marcos #define () #define min(i, j) (((i) < (j))? (i) : (j)) #define max(i, j) (((i) > (j))? (i) : (j)) #define RADTODEG(x)
More informationCS250 Final Review Questions
CS250 Final Review Questions The following is a list of review questions that you can use to study for the final. I would first make sure that you review all previous exams and make sure you fully understand
More informationCOMP6771 Advanced C++ Programming
1 COMP6771 Advanced C++ Programming Week 11 Object Oriented Programming 2016 www.cse.unsw.edu.au/ cs6771 2 Covariants and Contravariants Let us assume that Class B is a subtype of class A. Covariants:
More informationModern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi
Modern C++ for Computer Vision and Image Processing Igor Bogoslavskyi Outline Move semantics Classes Operator overloading Making your class copyable Making your class movable Rule of all or nothing Inheritance
More informationC++ Inheritance and Encapsulation
C++ Inheritance and Encapsulation Private and Protected members Inheritance Type Public Inheritance Private Inheritance Protected Inheritance Special method inheritance 1 Private Members Private members
More informationLecture 5: Inheritance
McGill University Computer Science Department COMP 322 : Introduction to C++ Winter 2009 Lecture 5: Inheritance Sami Zhioua March 11 th, 2009 1 Inheritance Inheritance is a form of software reusability
More informationLecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction
Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationCOSC252: Programming Languages: Abstraction and OOP. Jeremy Bolton, PhD Asst Teaching Professor. Copyright 2015 Pearson. All rights reserved.
COSC252: Programming Languages: Abstraction and OOP Jeremy Bolton, PhD Asst Teaching Professor Copyright 2015 Pearson. All rights reserved. Copyright 2015 Pearson. All rights reserved. Topics The Concept
More informationChapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.
hapter 1 INTRODUTION SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. ++ Programming: Advanced Objectives You will learn: Anonymous class types. Nested class declarations. Incomplete declarations. Pointers to class
More information7.1 Optional Parameters
Chapter 7: C++ Bells and Whistles A number of C++ features are introduced in this chapter: default parameters, const class members, and operator extensions. 7.1 Optional Parameters Purpose and Rules. Default
More informationCS 106B Lecture 27: Inheritance and Polymorphism in C++
CS 106B Lecture 27: Inheritance and Polymorphism in C++ Monday, June 4, 2018 Programming Abstractions Spring 2018 Stanford University Computer Science Department Lecturer: Chris Gregg reading: Programming
More informationCS107 Handout 37 Spring 2007 May 25, 2007 Introduction to Inheritance
CS107 Handout 37 Spring 2007 May 25, 2007 Introduction to Inheritance Handout written by Julie Zelenski, updated by Jerry. Inheritance is a language property most gracefully supported by the object-oriented
More informationCS105 C++ Lecture 7. More on Classes, Inheritance
CS105 C++ Lecture 7 More on Classes, Inheritance " Operator Overloading Global vs Member Functions Difference: member functions already have this as an argument implicitly, global has to take another parameter.
More informationObject-oriented Programming. Object-oriented Programming
2014-06-13 Object-oriented Programming Object-oriented Programming 2014-06-13 Object-oriented Programming 1 Object-oriented Languages object-based: language that supports objects class-based: language
More informationWhat does it mean by information hiding? What are the advantages of it? {5 Marks}
SECTION ONE (COMPULSORY) Question #1 [30 Marks] a) Describe the main characteristics of object-oriented programming. {5 Marks Encapsulation the ability to define a new type and a set of operations on that
More informationChapter 15: Inheritance, Polymorphism, and Virtual Functions
Chapter 15: Inheritance, Polymorphism, and Virtual Functions 15.1 What Is Inheritance? What Is Inheritance? Provides a way to create a new class from an existing class The new class is a specialized version
More informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 22 November 28, 2016 CPSC 427, Lecture 22 1/43 Exceptions (continued) Code Reuse Linear Containers Ordered Containers Multiple Inheritance
More informationL4: Inheritance. Inheritance. Chapter 8 and 10 of Budd.
L4: Inheritance Inheritance Definition Example Other topics: Is A Test, Reasons for Inheritance, C++ vs. Java, Subclasses and Subtypes 7 Forms of Inheritance Discussions Chapter 8 and 10 of Budd. SFDV4001
More informationInstantiation of Template class
Class Templates Templates are like advanced macros. They are useful for building new classes that depend on already existing user defined classes or built-in types. Example: stack of int or stack of double
More informationObject Oriented Programming: Inheritance Polymorphism
Object Oriented Programming: Inheritance Polymorphism Shahram Rahatlou Computing Methods in Physics http://www.roma1.infn.it/people/rahatlou/cmp/ Anno Accademico 2018/19 Today s Lecture Introduction to
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationCS32 - Week 4. Umut Oztok. Jul 15, Umut Oztok CS32 - Week 4
CS32 - Week 4 Umut Oztok Jul 15, 2016 Inheritance Process of deriving a new class using another class as a base. Base/Parent/Super Class Derived/Child/Sub Class Inheritance class Animal{ Animal(); ~Animal();
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Inheritance Introduction Generalization/specialization Version of January 20, 2014 Abstract
More informationC++ (classes) Hwansoo Han
C++ (classes) Hwansoo Han Inheritance Relation among classes shape, rectangle, triangle, circle, shape rectangle triangle circle 2 Base Class: shape Members of a class Methods : rotate(), move(), Shape(),
More informationPassing arguments to functions by. const member functions const arguments to a function. Function overloading and overriding Templates
Lecture-4 Inheritance review. Polymorphism Virtual functions Abstract classes Passing arguments to functions by Value, pointers, refrence const member functions const arguments to a function Function overloading
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationCSE 303: Concepts and Tools for Software Development
CSE 303: Concepts and Tools for Software Development Hal Perkins Autumn 2008 Lecture 24 Introduction to C++ CSE303 Autumn 2008, Lecture 24 1 C++ C++ is an enormous language: All of C Classes and objects
More informationCS/ENGRD 2110 FALL Lecture 7: Interfaces and Abstract Classes
CS/ENGRD 2110 FALL 2017 Lecture 7: Interfaces and Abstract Classes http://courses.cs.cornell.edu/cs2110 1 Announcements 2 A2 is due tomorrow night (17 February) Get started on A3 a method every other day.
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationA A B U n i v e r s i t y
A A B U n i v e r s i t y Faculty of Computer Sciences O b j e c t O r i e n t e d P r o g r a m m i n g Week 10: I n h e r i t a n c e Asst. Prof. Dr. M entor Hamiti mentor.hamiti@universitetiaab.com
More informationCSSE 220 Day 15. Inheritance. Check out DiscountSubclasses from SVN
CSSE 220 Day 15 Inheritance Check out DiscountSubclasses from SVN Discount Subclasses Work in pairs First look at my solution and understand how it works Then draw a UML diagram of it DiscountSubclasses
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Inheritance Introduction Generalization/specialization Version of January 21, 2013 Abstract
More informationC++ Important Questions with Answers
1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children
More informationChapter 11. Abstract Data Types and Encapsulation Concepts ISBN
Chapter 11 Abstract Data Types and Encapsulation Concepts ISBN 0-321-49362-1 Chapter 11 Topics The Concept of Abstraction Introduction to Data Abstraction Design Issues for Abstract Data Types Language
More informationCS250 Final Review Questions
CS250 Final Review Questions The following is a list of review questions that you can use to study for the final. I would first make sure you review all previous exams and make sure you fully understand
More informationIntroduction to Design Patterns
Introduction to Design Patterns First, what s a design pattern? a general reusable solution to a commonly occurring problem within a given context in software design It s not a finished design that can
More informationMemory and Pointers written by Cathy Saxton
Memory and Pointers written by Cathy Saxton Basic Memory Layout When a program is running, there are three main chunks of memory that it is using: A program code area where the program itself is loaded.
More informationI BCS-031 BACHELOR OF COMPUTER APPLICATIONS (BCA) (Revised) Term-End Examination. June, 2015 BCS-031 : PROGRAMMING IN C ++
No. of Printed Pages : 3 I BCS-031 BACHELOR OF COMPUTER APPLICATIONS (BCA) (Revised) Term-End Examination 05723. June, 2015 BCS-031 : PROGRAMMING IN C ++ Time : 3 hours Maximum Marks : 100 (Weightage 75%)
More informationIS0020 Program Design and Software Tools Summer, 2004 August 2, 2004 in Class
IS0020 Program Design and Software Tools Summer, 2004 August 2, 2004 in Class Name: A. Fill in the blanks in each of the following statements [Score: 20]: 1. A base class s members can be accessed only
More informationM301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism
Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze
More informationCS11 Introduction to C++ Fall Lecture 7
CS11 Introduction to C++ Fall 2012-2013 Lecture 7 Computer Strategy Game n Want to write a turn-based strategy game for the computer n Need different kinds of units for the game Different capabilities,
More informationObject typing and subtypes
CS 242 2012 Object typing and subtypes Reading Chapter 10, section 10.2.3 Chapter 11, sections 11.3.2 and 11.7 Chapter 12, section 12.4 Chapter 13, section 13.3 Subtyping and Inheritance Interface The
More informationProgramming, numerics and optimization
Programming, numerics and optimization Lecture A-4: Object-oriented programming Łukasz Jankowski ljank@ippt.pan.pl Institute of Fundamental Technological Research Room 4.32, Phone +22.8261281 ext. 428
More informationChapter 11. Abstract Data Types and Encapsulation Concepts
Chapter 11 Abstract Data Types and Encapsulation Concepts The Concept of Abstraction An abstraction is a view or representation of an entity that includes only the most significant attributes The concept
More informationExtending Classes (contd.) (Chapter 15) Questions:
Extending Classes (contd.) (Chapter 15) Questions: 1 1. The following C++ program compiles without any problems. When run, it even prints out the hello called for in line (B) of main. But subsequently
More informationTokens, Expressions and Control Structures
3 Tokens, Expressions and Control Structures Tokens Keywords Identifiers Data types User-defined types Derived types Symbolic constants Declaration of variables Initialization Reference variables Type
More informationPolymorphism. Miri Ben-Nissan (Kopel) Miri Kopel, Bar-Ilan University
Polymorphism Miri Ben-Nissan (Kopel) 1 Shape Triangle Rectangle Circle int main( ) Shape* p = GetShape( ); p->draw( ); Shape* GetShape( ) choose randomly which shape to send back For example: Shape* p
More informationWhat is Inheritance?
Inheritance 1 Agenda What is and Why Inheritance? How to derive a sub-class? Object class Constructor calling chain super keyword Overriding methods (most important) Hiding methods Hiding fields Type casting
More informationCSCI-1200 Computer Science II Fall 2006 Lecture 23 C++ Inheritance and Polymorphism
CSCI-1200 Computer Science II Fall 2006 Lecture 23 C++ Inheritance and Polymorphism Review from Lecture 22 Added parent pointers to the TreeNode to implement increment and decrement operations on tree
More informationCSC 1214: Object-Oriented Programming
CSC 1214: Object-Oriented Programming J. Kizito Makerere University e-mail: jkizito@cis.mak.ac.ug www: http://serval.ug/~jona materials: http://serval.ug/~jona/materials/csc1214 e-learning environment:
More informationCOMP322 - Introduction to C++
COMP322 - Introduction to C++ Winter 2011 Lecture 08 - Inheritance continued School of Computer Science McGill University March 8, 2011 Last Time Single Inheritance Polymorphism: Static Binding vs Dynamic
More informationBabaria Institute of Technology Computer Science and Engineering Department Practical List of Object Oriented Programming with C
Practical -1 Babaria Institute of Technology LEARN CONCEPTS OF OOP 1. Explain Object Oriented Paradigm with figure. 2. Explain basic Concepts of OOP with example a. Class b. Object c. Data Encapsulation
More informationSuper-Classes and sub-classes
Super-Classes and sub-classes Subclasses. Overriding Methods Subclass Constructors Inheritance Hierarchies Polymorphism Casting 1 Subclasses: Often you want to write a class that is a special case of an
More informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 21 November 14, 2018 CPSC 427, Lecture 21, November 14, 2018 1/23 Singleton Design Pattern (revisited) More on Functions Casts and Conversions
More informationIncreases Program Structure which results in greater reliability. Polymorphism
UNIT 4 C++ Inheritance What is Inheritance? Inheritance is the process by which new classes called derived classes are created from existing classes called base classes. The derived classes have all the
More informationCOEN244: Polymorphism
COEN244: Polymorphism Aishy Amer Electrical & Computer Engineering Polymorphism means variable behavior / ability to appear in many forms Outline Casting between objects Using pointers to access objects
More information26. Interfaces. Java. Fall 2009 Instructor: Dr. Masoud Yaghini
26. Interfaces Java Fall 2009 Instructor: Dr. Masoud Yaghini Outline Definition The Comparable Interface Interfaces vs. Abstract Classes Creating Custom Interfaces References Definition Definition Single
More information