SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked (7)

2006 7 3
2006 7 32006 7 3
2006 7 3
 
Adaptation ks4
Adaptation ks4Adaptation ks4
Adaptation ks4
 
Circles (4)
Circles (4)Circles (4)
Circles (4)
 
Adaptation ks4 001
Adaptation ks4 001Adaptation ks4 001
Adaptation ks4 001
 
Energy transfer
Energy transferEnergy transfer
Energy transfer
 
12.215.lec04
12.215.lec0412.215.lec04
12.215.lec04
 
14 class design (1)
14 class design (1)14 class design (1)
14 class design (1)
 

Similar to 14 class design

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
 

Similar to 14 class design (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
 

More from 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 (3)
Circles (3)Circles (3)
Circles (3)
 
Circles (2)
Circles (2)Circles (2)
Circles (2)
 
Circle
CircleCircle
Circle
 
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
 
Light presentation
Light presentationLight presentation
Light presentation
 
Energy and work
Energy and workEnergy and work
Energy and work
 
Detroit ins ropes & pulleys
Detroit ins ropes & pulleysDetroit ins ropes & pulleys
Detroit ins ropes & pulleys
 
Chapter5
Chapter5Chapter5
Chapter5
 

Recently uploaded

+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@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

+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...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

14 class design

  • 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.