SlideShare uma empresa Scribd logo
1 de 30
Chapter 14 Graph class design Bjarne Stroustrup www.stroustrup.com/Programming
Abstract ,[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Ideals ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Logically identical operations have the same name ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Logically different operations have different names ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],(100,200) p1: (200,300) p2: attach() add() Stroustrup/Programming (100,200) (200,300) &ln ln: win:
Expose uniformly ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
What does “private” buy us? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
“ Regular” interfaces ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
A library ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Class Shape ,[object Object],[object Object],Rectangle Image Stroustrup/Programming Shape Polygon Text Open_polyline Ellipse Circle Marked_polyline Closed_polyline Line Mark Lines Marks Axis Function
Class Shape  – is abstract ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Class Shape ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Class Shape ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Class Shape ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Class Shape ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Class Shape  (basic idea of drawing) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Class Shape  (implementation of drawing) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Note! Stroustrup/Programming
Class shape ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Display model completed attach() Stroustrup/Programming Circle draw_lines() Text draw_lines() Window Display Engine draw() draw() draw() our code make objects wait_for_button() Shape Shape draw_lines() draw_lines()
Language mechanisms ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
A simple class hierarchy ,[object Object],[object Object],Rectangle Image Stroustrup/Programming Shape Polygon Text Open_polyline Ellipse Circle Marked_polyline Closed_polyline Line Mark Lines Marks Axis Function
Object layout ,[object Object],Stroustrup/Programming points line_color ls Shape: points  line_color ls ---------------------- r Circle:
Benefits of inheritance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Access model ,[object Object],[object Object],Stroustrup/Programming
Pure virtual functions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Pure virtual functions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Technicality: Copying ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming
Technicality: Overriding ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Stroustrup/Programming ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Next lecture ,[object Object],Stroustrup/Programming

Mais conteúdo relacionado

Mais procurados

CIV1900 Matlab - Plotting & Coursework
CIV1900 Matlab - Plotting & CourseworkCIV1900 Matlab - Plotting & Coursework
CIV1900 Matlab - Plotting & Coursework
TUOS-Sam
 
Introduction to autocad_lt
Introduction to autocad_ltIntroduction to autocad_lt
Introduction to autocad_lt
BENJAMIN20000
 

Mais procurados (20)

31 uml
31 uml31 uml
31 uml
 
Autocad electrical
Autocad electricalAutocad electrical
Autocad electrical
 
TUTORIAL AUTO CAD 3D
TUTORIAL AUTO CAD 3DTUTORIAL AUTO CAD 3D
TUTORIAL AUTO CAD 3D
 
CIV1900 Matlab - Plotting & Coursework
CIV1900 Matlab - Plotting & CourseworkCIV1900 Matlab - Plotting & Coursework
CIV1900 Matlab - Plotting & Coursework
 
Auto cad shortcuts
Auto cad shortcutsAuto cad shortcuts
Auto cad shortcuts
 
Presentation On Auto Cad
Presentation On Auto CadPresentation On Auto Cad
Presentation On Auto Cad
 
Eg5 n
Eg5 nEg5 n
Eg5 n
 
AutoCad Basic tutorial
AutoCad Basic tutorialAutoCad Basic tutorial
AutoCad Basic tutorial
 
Cad 003
Cad 003Cad 003
Cad 003
 
Unit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithmsUnit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithms
 
Auto cad
Auto cadAuto cad
Auto cad
 
Auto cad shortcuts___ & Commands booklet. best choice!!!
Auto cad shortcuts___ & Commands booklet. best choice!!!Auto cad shortcuts___ & Commands booklet. best choice!!!
Auto cad shortcuts___ & Commands booklet. best choice!!!
 
Introduction to autocad_lt
Introduction to autocad_ltIntroduction to autocad_lt
Introduction to autocad_lt
 
Class program and uml in c++
Class program and uml in c++Class program and uml in c++
Class program and uml in c++
 
Visula C# Programming Lecture 7
Visula C# Programming Lecture 7Visula C# Programming Lecture 7
Visula C# Programming Lecture 7
 
Practical work 2
Practical work 2Practical work 2
Practical work 2
 
uml
umluml
uml
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
 
Practical work 3
Practical work 3Practical work 3
Practical work 3
 
Acad commands
Acad commandsAcad commands
Acad commands
 

Destaque (8)

Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
Uml with detail
Uml with detailUml with detail
Uml with detail
 
UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)
 
Types of UML diagrams
Types of UML diagramsTypes of UML diagrams
Types of UML diagrams
 
UML- Unified Modeling Language
UML- Unified Modeling LanguageUML- Unified Modeling Language
UML- Unified Modeling Language
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagrams
 
UML Diagrams
UML DiagramsUML Diagrams
UML Diagrams
 

Semelhante a 14 class design (1)

Functions And Header Files In C++ | Bjarne stroustrup
Functions And Header Files In C++ | Bjarne stroustrupFunctions And Header Files In C++ | Bjarne stroustrup
Functions And Header Files In C++ | Bjarne stroustrup
SyedHaroonShah4
 
Im having trouble figuring out how to code these sections for an a.pdf
Im having trouble figuring out how to code these sections for an a.pdfIm having trouble figuring out how to code these sections for an a.pdf
Im having trouble figuring out how to code these sections for an a.pdf
rishteygallery
 
Client Side Programming with Applet
Client Side Programming with AppletClient Side Programming with Applet
Client Side Programming with Applet
backdoor
 
c++-language-1208539706757125-9.pdf
c++-language-1208539706757125-9.pdfc++-language-1208539706757125-9.pdf
c++-language-1208539706757125-9.pdf
nisarmca
 
Chapter27 polymorphism-virtual-function-abstract-class
Chapter27 polymorphism-virtual-function-abstract-classChapter27 polymorphism-virtual-function-abstract-class
Chapter27 polymorphism-virtual-function-abstract-class
Deepak Singh
 

Semelhante a 14 class design (1) (20)

Computer Graphics Concepts
Computer Graphics ConceptsComputer Graphics Concepts
Computer Graphics Concepts
 
C++ Inheritance
C++ InheritanceC++ Inheritance
C++ Inheritance
 
Learn Creative Coding: Begin Programming with the Processing Language
Learn Creative Coding: Begin Programming with the Processing LanguageLearn Creative Coding: Begin Programming with the Processing Language
Learn Creative Coding: Begin Programming with the Processing Language
 
Learn Creative Coding: Begin Programming with the Processing Language
Learn Creative Coding: Begin Programming with the Processing LanguageLearn Creative Coding: Begin Programming with the Processing Language
Learn Creative Coding: Begin Programming with the Processing Language
 
Intake 37 6
Intake 37 6Intake 37 6
Intake 37 6
 
Applets - lev' 2
Applets - lev' 2Applets - lev' 2
Applets - lev' 2
 
C++ Language
C++ LanguageC++ Language
C++ Language
 
Synapseindia dot net development
Synapseindia dot net developmentSynapseindia dot net development
Synapseindia dot net development
 
Introduction to Coding
Introduction to CodingIntroduction to Coding
Introduction to Coding
 
L10
L10L10
L10
 
JAVA OOP
JAVA OOPJAVA OOP
JAVA OOP
 
02.adt
02.adt02.adt
02.adt
 
Intake 38 6
Intake 38 6Intake 38 6
Intake 38 6
 
Functions And Header Files In C++ | Bjarne stroustrup
Functions And Header Files In C++ | Bjarne stroustrupFunctions And Header Files In C++ | Bjarne stroustrup
Functions And Header Files In C++ | Bjarne stroustrup
 
Im having trouble figuring out how to code these sections for an a.pdf
Im having trouble figuring out how to code these sections for an a.pdfIm having trouble figuring out how to code these sections for an a.pdf
Im having trouble figuring out how to code these sections for an a.pdf
 
Visula C# Programming Lecture 2
Visula C# Programming Lecture 2Visula C# Programming Lecture 2
Visula C# Programming Lecture 2
 
Client Side Programming with Applet
Client Side Programming with AppletClient Side Programming with Applet
Client Side Programming with Applet
 
Basics of objective c
Basics of objective cBasics of objective c
Basics of objective c
 
c++-language-1208539706757125-9.pdf
c++-language-1208539706757125-9.pdfc++-language-1208539706757125-9.pdf
c++-language-1208539706757125-9.pdf
 
Chapter27 polymorphism-virtual-function-abstract-class
Chapter27 polymorphism-virtual-function-abstract-classChapter27 polymorphism-virtual-function-abstract-class
Chapter27 polymorphism-virtual-function-abstract-class
 

Mais de Satyam Gupta (20)

Xerophytes
XerophytesXerophytes
Xerophytes
 
Viruses 001
Viruses 001Viruses 001
Viruses 001
 
Viruses
VirusesViruses
Viruses
 
Symbiosis3
Symbiosis3Symbiosis3
Symbiosis3
 
Symbiosis2
Symbiosis2Symbiosis2
Symbiosis2
 
Symbiosis
SymbiosisSymbiosis
Symbiosis
 
What is ecology
What is ecologyWhat is ecology
What is ecology
 
Core sub math_att_4pythagoreantheorem
Core sub math_att_4pythagoreantheoremCore sub math_att_4pythagoreantheorem
Core sub math_att_4pythagoreantheorem
 
Circle theorems
Circle theoremsCircle theorems
Circle theorems
 
Circles
CirclesCircles
Circles
 
Circles (4)
Circles (4)Circles (4)
Circles (4)
 
Circles (3)
Circles (3)Circles (3)
Circles (3)
 
Circles (2)
Circles (2)Circles (2)
Circles (2)
 
Circle
CircleCircle
Circle
 
2006 7 3
2006 7 32006 7 3
2006 7 3
 
14 class design
14 class design14 class design
14 class design
 
12.215.lec04
12.215.lec0412.215.lec04
12.215.lec04
 
6.1 circles---day-28-1
6.1 circles---day-28-16.1 circles---day-28-1
6.1 circles---day-28-1
 
Cummason
CummasonCummason
Cummason
 
Physics chpt18
Physics chpt18Physics chpt18
Physics chpt18
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

14 class design (1)

  • 1. Chapter 14 Graph class design Bjarne Stroustrup www.stroustrup.com/Programming
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Display model completed attach() Stroustrup/Programming Circle draw_lines() Text draw_lines() Window Display Engine draw() draw() draw() our code make objects wait_for_button() Shape Shape draw_lines() draw_lines()
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.