Submit Search
Upload
OOP - Templates
•
Download as PPTX, PDF
•
0 likes
•
1,078 views
Mohammad Shaker
Follow
Object oriented programming - session 6
Read less
Read more
Software
Report
Share
Report
Share
1 of 23
Download now
Recommended
Recursive Function
Recursive Function
Harsh Pathak
Array in c++
Array in c++
Mahesha Mano
java graphics
java graphics
nilaykarade1
C++ decision making
C++ decision making
Zohaib Ahmed
Strings
Strings
Nilesh Dalvi
Presentation on Function in C Programming
Presentation on Function in C Programming
Shuvongkor Barman
c++ programming Unit 2 basic structure of a c++ program
c++ programming Unit 2 basic structure of a c++ program
AAKASH KUMAR
Strings in C
Strings in C
Kamal Acharya
Recommended
Recursive Function
Recursive Function
Harsh Pathak
Array in c++
Array in c++
Mahesha Mano
java graphics
java graphics
nilaykarade1
C++ decision making
C++ decision making
Zohaib Ahmed
Strings
Strings
Nilesh Dalvi
Presentation on Function in C Programming
Presentation on Function in C Programming
Shuvongkor Barman
c++ programming Unit 2 basic structure of a c++ program
c++ programming Unit 2 basic structure of a c++ program
AAKASH KUMAR
Strings in C
Strings in C
Kamal Acharya
Strings
Strings
Mitali Chugh
C Programming: Control Structure
C Programming: Control Structure
Sokngim Sa
Function in C
Function in C
Dr. Abhineet Anand
String Handling in c++
String Handling in c++
Fahim Adil
Keywords, identifiers ,datatypes in C++
Keywords, identifiers ,datatypes in C++
Ankur Pandey
Command line arguments
Command line arguments
Ashok Raj
Introduction to problem solving in C
Introduction to problem solving in C
Diwakar Pratap Singh 'Deva'
classes and objects in C++
classes and objects in C++
HalaiHansaika
Resolución de problemas con java
Resolución de problemas con java
diegocastro1234
Modular programming
Modular programming
Mohanlal Sukhadia University (MLSU)
Introduction to c#
Introduction to c#
OpenSource Technologies Pvt. Ltd.
functions of C++
functions of C++
tarandeep_kaur
C++ programming
C++ programming
Emertxe Information Technologies Pvt Ltd
c++
c++
SindhuVelmukull
String in c programming
String in c programming
Devan Thakur
Data types in c++
Data types in c++
RushikeshGaikwad28
Learn C# Programming - Encapsulation & Methods
Learn C# Programming - Encapsulation & Methods
Eng Teong Cheah
Call by value or call by reference in C++
Call by value or call by reference in C++
Sachin Yadav
Number system conversion
Number system conversion
Kawsar Hamid Sumon
Programmazione Top Down in C++
Programmazione Top Down in C++
I.S.I.S. "Antonio Serra" - Napoli
Savitch Ch 17
Savitch Ch 17
Terry Yoast
Advanced Programming C++
Advanced Programming C++
guestf0562b
More Related Content
What's hot
Strings
Strings
Mitali Chugh
C Programming: Control Structure
C Programming: Control Structure
Sokngim Sa
Function in C
Function in C
Dr. Abhineet Anand
String Handling in c++
String Handling in c++
Fahim Adil
Keywords, identifiers ,datatypes in C++
Keywords, identifiers ,datatypes in C++
Ankur Pandey
Command line arguments
Command line arguments
Ashok Raj
Introduction to problem solving in C
Introduction to problem solving in C
Diwakar Pratap Singh 'Deva'
classes and objects in C++
classes and objects in C++
HalaiHansaika
Resolución de problemas con java
Resolución de problemas con java
diegocastro1234
Modular programming
Modular programming
Mohanlal Sukhadia University (MLSU)
Introduction to c#
Introduction to c#
OpenSource Technologies Pvt. Ltd.
functions of C++
functions of C++
tarandeep_kaur
C++ programming
C++ programming
Emertxe Information Technologies Pvt Ltd
c++
c++
SindhuVelmukull
String in c programming
String in c programming
Devan Thakur
Data types in c++
Data types in c++
RushikeshGaikwad28
Learn C# Programming - Encapsulation & Methods
Learn C# Programming - Encapsulation & Methods
Eng Teong Cheah
Call by value or call by reference in C++
Call by value or call by reference in C++
Sachin Yadav
Number system conversion
Number system conversion
Kawsar Hamid Sumon
Programmazione Top Down in C++
Programmazione Top Down in C++
I.S.I.S. "Antonio Serra" - Napoli
What's hot
(20)
Strings
Strings
C Programming: Control Structure
C Programming: Control Structure
Function in C
Function in C
String Handling in c++
String Handling in c++
Keywords, identifiers ,datatypes in C++
Keywords, identifiers ,datatypes in C++
Command line arguments
Command line arguments
Introduction to problem solving in C
Introduction to problem solving in C
classes and objects in C++
classes and objects in C++
Resolución de problemas con java
Resolución de problemas con java
Modular programming
Modular programming
Introduction to c#
Introduction to c#
functions of C++
functions of C++
C++ programming
C++ programming
c++
c++
String in c programming
String in c programming
Data types in c++
Data types in c++
Learn C# Programming - Encapsulation & Methods
Learn C# Programming - Encapsulation & Methods
Call by value or call by reference in C++
Call by value or call by reference in C++
Number system conversion
Number system conversion
Programmazione Top Down in C++
Programmazione Top Down in C++
Similar to OOP - Templates
Savitch Ch 17
Savitch Ch 17
Terry Yoast
Advanced Programming C++
Advanced Programming C++
guestf0562b
Savitch ch 17
Savitch ch 17
Terry Yoast
C++ Templates 2
C++ Templates 2
Ganesh Samarthyam
Generic Programming in java
Generic Programming in java
Garik Kalashyan
An Introduction To C++Templates
An Introduction To C++Templates
Ganesh Samarthyam
Java Generics
Java Generics
DeeptiJava
templates.ppt
templates.ppt
Saiganesh124618
Presentation 4th
Presentation 4th
Connex
Java fundamentals
Java fundamentals
Jayfee Ramos
2 BytesC++ course_2014_c13_ templates
2 BytesC++ course_2014_c13_ templates
kinan keshkeh
More Little Wonders of C#/.NET
More Little Wonders of C#/.NET
BlackRabbitCoder
The Future of C++
The Future of C++
Sasha Goldshtein
OOP - Introduction to Inheritance
OOP - Introduction to Inheritance
Mohammad Shaker
Templates
Templates
Pranali Chaudhari
Templates presentation
Templates presentation
malaybpramanik
Templates in c++
Templates in c++
Mayank Bhatt
Templates2
Templates2
zindadili
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
Andrey Upadyshev
Function template
Function template
Kousalya M
Similar to OOP - Templates
(20)
Savitch Ch 17
Savitch Ch 17
Advanced Programming C++
Advanced Programming C++
Savitch ch 17
Savitch ch 17
C++ Templates 2
C++ Templates 2
Generic Programming in java
Generic Programming in java
An Introduction To C++Templates
An Introduction To C++Templates
Java Generics
Java Generics
templates.ppt
templates.ppt
Presentation 4th
Presentation 4th
Java fundamentals
Java fundamentals
2 BytesC++ course_2014_c13_ templates
2 BytesC++ course_2014_c13_ templates
More Little Wonders of C#/.NET
More Little Wonders of C#/.NET
The Future of C++
The Future of C++
OOP - Introduction to Inheritance
OOP - Introduction to Inheritance
Templates
Templates
Templates presentation
Templates presentation
Templates in c++
Templates in c++
Templates2
Templates2
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
Function template
Function template
More from Mohammad Shaker
Android Development - Session 5
Android Development - Session 5
Mohammad Shaker
Android Development - Session 4
Android Development - Session 4
Mohammad Shaker
Android Development - Session 2
Android Development - Session 2
Mohammad Shaker
Android Development - Session 1
Android Development - Session 1
Mohammad Shaker
Introduction to Qt
Introduction to Qt
Mohammad Shaker
OOP - STL
OOP - STL
Mohammad Shaker
OOP - Friend Functions
OOP - Friend Functions
Mohammad Shaker
OOP - Introduction
OOP - Introduction
Mohammad Shaker
NoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to Couchbase
Mohammad Shaker
Introduction to Couchbase
Introduction to Couchbase
Mohammad Shaker
More from Mohammad Shaker
(10)
Android Development - Session 5
Android Development - Session 5
Android Development - Session 4
Android Development - Session 4
Android Development - Session 2
Android Development - Session 2
Android Development - Session 1
Android Development - Session 1
Introduction to Qt
Introduction to Qt
OOP - STL
OOP - STL
OOP - Friend Functions
OOP - Friend Functions
OOP - Introduction
OOP - Introduction
NoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to Couchbase
Introduction to Couchbase
Introduction to Couchbase
Recently uploaded
DNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Dynamic Netsoft
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Christina Lin
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
VitsRangannavar
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
OPEN KNOWLEDGE GmbH
Asset Management Software - Infographic
Asset Management Software - Infographic
Hr365.us smith
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
Tier1 app
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
soniya singh
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
BradBedford3
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
Mehedi Hasan Shohan
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
stazi3110
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
Power Karaoke
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
Wave PLM
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
joe51371421
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
kaushalgiri8080
Professional Resume Template for Software Developers
Professional Resume Template for Software Developers
Vinodh Ram
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
kalichargn70th171
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
Fatema Valibhai
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
ICS
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Alberto González Trastoy
EY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
Neo4j
Recently uploaded
(20)
DNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
Asset Management Software - Infographic
Asset Management Software - Infographic
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
Professional Resume Template for Software Developers
Professional Resume Template for Software Developers
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
EY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
OOP - Templates
1.
Templates Object Oriented Programming
Copyright © 2012 IM Group. All rights reserved
2.
Training • Makes a
simple function to swap 2 characters. Copyright © 2012 IM Group. All rights reserved
3.
swap_values for char •
Here is a version of swap_values to swap character variables: ▫ void swap_values(char& v1, char& v2) { char temp; temp = v1; v1 = v2; v2 = temp; } Copyright © 2012 IM Group. All rights reserved
4.
A General swap_values •
A generalized version of swap_values is shown here. ▫ void swap_values(type_of_var& v1, type_of_var& v2) { type_of_var temp; temp = v1; v1 = v2; v2 = temp; } ▫ This function, if type_of_var could accept any type, could be used to swap values of any type Copyright © 2012 IM Group. All rights reserved
5.
• A C++
function template will allow swap_values to swap values of two variables of the same type ▫ Example: template<class T> void swap_values(T& v1, T& v2) { T temp; temp = v1; v1 = v2; v = temp; } Template prefix Type parameter Templates for Functions Copyright © 2012 IM Group. All rights reserved
6.
Template Details • template<class
T> is the template prefix ▫ Tells compiler that the declaration or definition that follows is a template ▫ Tells compiler that T is a type parameter class means type in this context (typename could replace class but class is usually used) T can be replaced by any type argument (whether the type is a class or not) • A template overloads the function name by replacing T with the type used in a function call Copyright © 2012 IM Group. All rights reserved
7.
Calling a Template
Function • Calling a function defined with a template is identical to calling a normal function ▫ Example: To call the template version of swap_values char s1, s2; int i1, i2; … swap_values(s1, s2); swap_values(i1, i2); The compiler checks the argument types and generates an appropriate version of swap_values Copyright © 2012 IM Group. All rights reserved
8.
Templates and Declarations •
A function template may also have a separate declaration ▫ The template prefix and type parameter are used ▫ Depending on your compiler You may, or may not, be able to separate declaration and definitions of template functions just as you do with regular functions ▫ To be safe, place template function definitions in the same file where they are used…with no declaration A file included with #include is, in most cases, equivalent to being "in the same file“ This means including the .cpp file or .h file with implementation code Copyright © 2012 IM Group. All rights reserved
9.
Templates with Multiple
Parameters • Function templates may use more than one parameter ▫ Example: template<class T1, class T2> All parameters must be used in the template function Copyright © 2012 IM Group. All rights reserved
10.
Defining Templates • When
defining a template it is a good idea… ▫ To start with an ordinary function that accomplishes the task with one type It is often easier to deal with a concrete case rather than the general case ▫ Then debug the ordinary function ▫ Next convert the function to a template by replacing type names with a type parameter Copyright © 2012 IM Group. All rights reserved
11.
Copyright © 2012 IM Group.
All rights reserved Templates for Data Abstraction Object Oriented Programming
12.
Templates for Data
Abstraction • Class definitions can also be made more general with templates ▫ The syntax for class templates is basically the same as for function templates template<class T> comes before the template definition Type parameter T is used in the class definition just like any other type Type parameter T can represent any type Copyright © 2012 IM Group. All rights reserved
13.
A Class Template •
The following is a class template ▫ An object of this class contains a pair of values of type T ▫ template <class T> class Pair { public: Pair( ); Pair( T first_value, T second_value); … continued on next slide Copyright © 2012 IM Group. All rights reserved
14.
Template Class Pair
(cont.) ▫ void set_element(int position, T value); //Precondition: position is 1 or 2 //Postcondition: position indicated is set to value T get_element(int position) const; // Precondition: position is 1 or 2 // Returns value in position indicated private: T first; T second; }; Copyright © 2012 IM Group. All rights reserved
15.
Declaring Template Class
Objects • Once the class template is defined, objects may be declared ▫ Declarations must indicate what type is to be used for T ▫ Example: To declare an object so it can hold a pair of integers: Pair<int> score; or for a pair of characters: Pair<char> seats; Copyright © 2012 IM Group. All rights reserved
16.
Using the Objects •
After declaration, objects based on a template class are used just like any other objects ▫ Continuing the previous example: score.set_element(1,3); score.set_element(2,0); seats.set_element(1, 'A'); Copyright © 2012 IM Group. All rights reserved
17.
Defining the Member
Functions • Member functions of a template class are defined the same way as member functions of ordinary classes ▫ The only difference is that the member function definitions are themselves templates Copyright © 2012 IM Group. All rights reserved
18.
• This is
a definition of the constructor for class Pair that takes two arguments template<class T> Pair<T>::Pair(T first_value, T second_value) : first(first_value), second(second_value) { //No body needed due to initialization above } ▫ The class name includes <T> Defining a Pair Constructor Copyright © 2012 IM Group. All rights reserved
19.
Defining set_element • Here
is a definition for set_element in the template class Pair void Pair<T>::set_element(int position, T value) { if (position = = 1) first = value; else if (position = = 2) second = value; else … } Copyright © 2012 IM Group. All rights reserved
20.
Template Class Names
as Parameters • The name of a template class may be used as the type of a function parameter ▫ Example: To create a parameter of type Pair<int>: int add_up(const Pair<int>& the_pair); //Returns the sum of two integers in the_pair Copyright © 2012 IM Group. All rights reserved
21.
Template Functions with
Template Class Parameters • Function add_up from a previous example can be made more general as a template function: template<class T> T add_up(const Pair<T>& the_pair) //Precondition: operator + is defined for T //Returns sum of the two values in the_pair Copyright © 2012 IM Group. All rights reserved
22.
typedef and Templates •
You specialize a class template by giving a type argument to the class name such as Pair<int> ▫ The specialized name, Pair<int>, is used just like any class name • You can define a new class type name with the same meaning as the specialized name: typedef Class_Name<Type_Arg> New_Type_Name; For example: typedef Pair<int> PairOfInt; PairOfInt pair1, pair2; Copyright © 2012 IM Group. All rights reserved
23.
Any Questions Session 6
Copyright © 2012 IM Group. All rights reserved
Download now