Soumettre la recherche
Mettre en ligne
Lec4
•
Télécharger en tant que PPT, PDF
•
0 j'aime
•
303 vues
Ibrahim El-Torbany
Suivre
Technologie
Formation
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 23
Télécharger maintenant
Recommandé
Lec4
Lec4
Saad Gabr
Lecture 1 Introduction C++
Lecture 1 Introduction C++
Ajay Khatri
Classes and data abstraction
Classes and data abstraction
Hoang Nguyen
Cpp lernaufgabe linked_list
Cpp lernaufgabe linked_list
Ibrahim El-Torbany
Idea2
Idea2
Ibrahim El-Torbany
Lec3
Lec3
Ibrahim El-Torbany
c++ Unit I.pptx
c++ Unit I.pptx
Kongunadu College of Engineering and Technology
Objective-C for iOS Application Development
Objective-C for iOS Application Development
Dhaval Kaneria
Recommandé
Lec4
Lec4
Saad Gabr
Lecture 1 Introduction C++
Lecture 1 Introduction C++
Ajay Khatri
Classes and data abstraction
Classes and data abstraction
Hoang Nguyen
Cpp lernaufgabe linked_list
Cpp lernaufgabe linked_list
Ibrahim El-Torbany
Idea2
Idea2
Ibrahim El-Torbany
Lec3
Lec3
Ibrahim El-Torbany
c++ Unit I.pptx
c++ Unit I.pptx
Kongunadu College of Engineering and Technology
Objective-C for iOS Application Development
Objective-C for iOS Application Development
Dhaval Kaneria
Lec5
Lec5
Ibrahim El-Torbany
C++ Basics
C++ Basics
Himanshu Sharma
Presentation 1st
Presentation 1st
Connex
lecture02-cpp.ppt
lecture02-cpp.ppt
ssuser0c24d5
lecture02-cpp.ppt
lecture02-cpp.ppt
nilesh405711
lecture02-cpp.ppt
lecture02-cpp.ppt
YashpalYadav46
lecture02-cpp.ppt
lecture02-cpp.ppt
DevliNeeraj
Introduction to oop
Introduction to oop
Kumar
Lec3
Lec3
Saad Gabr
Presentation 4th
Presentation 4th
Connex
C++ programming intro
C++ programming intro
marklaloo
Lecture1
Lecture1
satendrakumar499728
Fundamentals of Programming in C++.ppt
Fundamentals of Programming in C++.ppt
AamirShahzad527024
cs8251 unit 1 ppt
cs8251 unit 1 ppt
praveenaprakasam
C++ppt. Classs and object, class and object
C++ppt. Classs and object, class and object
secondakay
Object Oriented Programming using C++ - Part 1
Object Oriented Programming using C++ - Part 1
University College of Engineering Kakinada, JNTUK - Kakinada, India
C chap16
C chap16
akkaraikumar
Learn c++ Programming Language
Learn c++ Programming Language
Steve Johnson
c++ ppt.ppt
c++ ppt.ppt
FarazKhan89093
UsingCPP_for_Artist.ppt
UsingCPP_for_Artist.ppt
vinu28455
C++ examples &revisions
C++ examples &revisions
Ibrahim El-Torbany
Lec6 mod linked list
Lec6 mod linked list
Ibrahim El-Torbany
Contenu connexe
Similaire à Lec4
Lec5
Lec5
Ibrahim El-Torbany
C++ Basics
C++ Basics
Himanshu Sharma
Presentation 1st
Presentation 1st
Connex
lecture02-cpp.ppt
lecture02-cpp.ppt
ssuser0c24d5
lecture02-cpp.ppt
lecture02-cpp.ppt
nilesh405711
lecture02-cpp.ppt
lecture02-cpp.ppt
YashpalYadav46
lecture02-cpp.ppt
lecture02-cpp.ppt
DevliNeeraj
Introduction to oop
Introduction to oop
Kumar
Lec3
Lec3
Saad Gabr
Presentation 4th
Presentation 4th
Connex
C++ programming intro
C++ programming intro
marklaloo
Lecture1
Lecture1
satendrakumar499728
Fundamentals of Programming in C++.ppt
Fundamentals of Programming in C++.ppt
AamirShahzad527024
cs8251 unit 1 ppt
cs8251 unit 1 ppt
praveenaprakasam
C++ppt. Classs and object, class and object
C++ppt. Classs and object, class and object
secondakay
Object Oriented Programming using C++ - Part 1
Object Oriented Programming using C++ - Part 1
University College of Engineering Kakinada, JNTUK - Kakinada, India
C chap16
C chap16
akkaraikumar
Learn c++ Programming Language
Learn c++ Programming Language
Steve Johnson
c++ ppt.ppt
c++ ppt.ppt
FarazKhan89093
UsingCPP_for_Artist.ppt
UsingCPP_for_Artist.ppt
vinu28455
Similaire à Lec4
(20)
Lec5
Lec5
C++ Basics
C++ Basics
Presentation 1st
Presentation 1st
lecture02-cpp.ppt
lecture02-cpp.ppt
lecture02-cpp.ppt
lecture02-cpp.ppt
lecture02-cpp.ppt
lecture02-cpp.ppt
lecture02-cpp.ppt
lecture02-cpp.ppt
Introduction to oop
Introduction to oop
Lec3
Lec3
Presentation 4th
Presentation 4th
C++ programming intro
C++ programming intro
Lecture1
Lecture1
Fundamentals of Programming in C++.ppt
Fundamentals of Programming in C++.ppt
cs8251 unit 1 ppt
cs8251 unit 1 ppt
C++ppt. Classs and object, class and object
C++ppt. Classs and object, class and object
Object Oriented Programming using C++ - Part 1
Object Oriented Programming using C++ - Part 1
C chap16
C chap16
Learn c++ Programming Language
Learn c++ Programming Language
c++ ppt.ppt
c++ ppt.ppt
UsingCPP_for_Artist.ppt
UsingCPP_for_Artist.ppt
Plus de Ibrahim El-Torbany
C++ examples &revisions
C++ examples &revisions
Ibrahim El-Torbany
Lec6 mod linked list
Lec6 mod linked list
Ibrahim El-Torbany
Lec2
Lec2
Ibrahim El-Torbany
Lec2&3 data structure
Lec2&3 data structure
Ibrahim El-Torbany
Lec1
Lec1
Ibrahim El-Torbany
Ass logic
Ass logic
Ibrahim El-Torbany
Math lecture 4 Part 1
Math lecture 4 Part 1
Ibrahim El-Torbany
Tutorial 1
Tutorial 1
Ibrahim El-Torbany
Lec2&3_DataStructure
Lec2&3_DataStructure
Ibrahim El-Torbany
Lecture 2 math 2
Lecture 2 math 2
Ibrahim El-Torbany
Lec1
Lec1
Ibrahim El-Torbany
Chapter 1 what is statistics
Chapter 1 what is statistics
Ibrahim El-Torbany
Plus de Ibrahim El-Torbany
(12)
C++ examples &revisions
C++ examples &revisions
Lec6 mod linked list
Lec6 mod linked list
Lec2
Lec2
Lec2&3 data structure
Lec2&3 data structure
Lec1
Lec1
Ass logic
Ass logic
Math lecture 4 Part 1
Math lecture 4 Part 1
Tutorial 1
Tutorial 1
Lec2&3_DataStructure
Lec2&3_DataStructure
Lecture 2 math 2
Lecture 2 math 2
Lec1
Lec1
Chapter 1 what is statistics
Chapter 1 what is statistics
Dernier
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Paola De la Torre
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Pooja Nehwal
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
HampshireHUG
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
gurkirankumar98700
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
Dernier
(20)
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Slack Application Development 101 Slides
Slack Application Development 101 Slides
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Lec4
1.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 1 More about OOP and ADTs Classes Chapter 4
2.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 2 Chapter Contents 4.1 Procedural vs. Object-Oriented Programming 4.2 Classes 4.3 Example: A First Version of a User- Defined Time Class 4.4 Class Constructors 4.5 Other Class Operators
3.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 3 Chapter Objectives • Contrast OOP with procedural programming • Review classes in C++ • Study in detail a specific example of how a class is built • Show how operators can be overloaded for new types • Show how conditional compilation directives are used to avoid redundant declarations • Discuss pointers to class objects – the this pointer, in particular
4.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 4 Contrast Procedural, Object Oriented Paradigms Procedural • Action-oriented — concentrates on the verbs • Programmers: – Identify basic tasks to solve problem – Implement actions to do tasks as subprograms (procedures/functions/ subroutines) – Group subprograms into programs/modules/libraries, – together make up a complete system for solving the problem Object-oriented • Focuses on the nouns of problem specification • Programmers: – Determine objects needed for problem – Determine how they should work together to solve the problem. – Create types called classes made up of • data members • function members to operate on the data. – Instances of a type (class) called objects.
5.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 5 Structs and Classes Similarities • Essentially the same syntax • Both are used to model objects with multiple attributes (characteristics) – represented as data members – also called fields … or … – instance or attribute variables). • Thus, both are used to process non- homogeneous data sets.
6.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 6 Structs vs. Classes Differences • No classes in C • Members public by default • Can be specified private • Both structs and classes in C++ • Structs can have members declared private • Class members are private by default • Can be specified public
7.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 7 Advantages in C++ (structs and Classes) • C++ structs and classes model objects which have: – Attributes represented as data members – Operations represented as functions (or methods) • Leads to object oriented programming – Objects are self contained – "I can do it myself" mentality – They do not pass a parameter to an external function
8.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 8 Class Declaration • Syntax class ClassName { public: Declarations of public members private: Declarations of private members };
9.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 9 Designing a Class • Data members normally placed in private: section of a class • Function members usually in public: section • Typically public: section followed by private: – although not required by compiler
10.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 10 Class Libraries • Class declarations placed in header file – Given .h extension – Contains data items and prototypes • Implementation file – Same prefix name as header file – Given .cpp extension • Programs which use this class library called client programs
11.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 11 Translating a Library
12.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 12 Example of User-Defined Time Class • Recall Time struct from previous chapter – Actions done to Time object required use of Time parameter in the functions • Now we create a Time class – Actions done to Time object, done by the object itself • Note interface for Time class object, Fig. 4.2 – Data members private – inaccessible to users of the class – Information hiding
13.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 13 Constructors • Note constructor definition in Time.cpp example • Syntax ClassName::ClassName (parameter_list) : member_initializer_list { // body of constructor definition }
14.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 14 Constructors • Results of default constructor • Results of explicit-value constructor
15.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 15 Overloading Functions • Note existence of multiple functions with the same name Time(); Time(unsigned initHours, unsigned initMinutes, char initAMPM); – Known as overloading • Compiler compares numbers and types of arguments of overloaded functions – Checks the "signature" of the functions
16.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 16 Default Arguments • Possible to specify default values for constructor arguments Time(unsigned initHours = 12, unsigned initMinutes = 0, char initAMPM = 'A'); • Consider Time t1, t2(5), t3(6,30), t4(8,15,'P');
17.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 17 Copy Operations • During initialization Time t = bedTime • During Assignment t = midnight;
18.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 18 Redundant Declarations • Note use of #include "Time.h" in – Time.cpp – Client program • Causes "redeclaration" errors at compile time • Solution is to use conditional compilation – Use #ifndef and #define and #endif compiler directives
19.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 19 Pointers to Class Objects • Possible to declare pointers to class objects Time * timePtr = &t; • Access with timePtr->getMilTime() or (*timePtr).getMilTime()
20.
Nyhoff, ADTs, Data
Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 20 The this Pointer • Every class has a keyword, this – a pointer whose value is the address of the object – Value of *this would be the object itself
21.
Example • #include<iostream> • using
namespace std; • class Student • { • public: • int ID; • void GetID(int Index) //Reads the ID from the User • { • cout<<"ID "<<Index<<" : "; • cin>>ID; • } • int Compare(int OtherID) //Compares the Student's ID with another one • { • if(ID > OtherID) • return 1; • else if ( ID < OtherID) • return -1; • else • return 0; //IDs are equal • } • }; Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 21
22.
• void main() •
{ • int StudentsNumber; • Student* Students; • cout << "Enter the Number of Students : "; • cin >> StudentsNumber; • cout<<endl; • //Create dynamic array of students • Students = new Student[StudentsNumber]; • for(int i=0 ; i<StudentsNumber ; i++) • { • Students[i].GetID(i+1); • } • Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 22
23.
• //Sorting • for(i=0
; i<StudentsNumber; i++) • { • int Min=Students[i].ID; • int Index = i; • for(int j=i; j<StudentsNumber; j++) • { • if(Students[j].Compare(Min) == -1) • { • Min = Students[j].ID; • Index = j; • } • } • //Swap • Student Temp = Students[i]; • Students[i] = Students[Index]; • Students[Index] = Temp; • } • //Display the sorted IDs • cout<<"nSorted Students IDs are : n"; • for(i=0; i<StudentsNumber ; i++) • cout<<Students[i].ID<<endl; • } Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 23
Télécharger maintenant