Suche senden
Hochladen
Lec4
•
Als PPT, PDF herunterladen
•
0 gefällt mir
•
303 views
Ibrahim El-Torbany
Folgen
Technologie
Bildung
Melden
Teilen
Melden
Teilen
1 von 23
Jetzt herunterladen
Empfohlen
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
Empfohlen
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
Weitere ähnliche Inhalte
Ähnlich wie 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
Ähnlich wie 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
Mehr von 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
Mehr von 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
Kürzlich hochgeladen
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Zilliz
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
hariprasad279825
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Miki Katsuragi
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Fwdays
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Wonjun Hwang
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
charlottematthew16
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
comworks
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
The Digital Insurer
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
Kürzlich hochgeladen
(20)
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
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
Jetzt herunterladen