C++ and the OOP Paradigm /
Bindu R. Rao
C++ and the OOP Paradigm / - 1 - Mc Graw hill - 188 páginas Ilustraciones, Tablas y Gráficas 23.3 cm x 15.5 cm
Incluye Referencias Bibliográficas
Preface 지
xill Acknowledgments
Chapter 1. The Object-Oriented Paradigm
1.1 The Software Development Process
1.2 The Object-Oriented Paradigm
1.3 Why Do We Need the Object-Oriented Paradigm?
1.4 Object-Oriented Paradigm versus SA/SD
1.5 Data Abstraction
1.6 Class
1.7 Objects
1.8 Data Manipulation
1.9 Reusability of Code
1.10 Toward an Object-Oriented Software Development Methodology
1.11 Learning Object-Oriented Programming
1.12 C++ Programming Fundamentals
1.13 Evolution of C++
1.14 An Exercise in Object-Oriented Design
1.15 Conclusions
1.16 Exercises
1.17 References
Chapter 2. The Fundamentals of C++
1
1
2
4
5
6
8
9
9
10
11
12
12
13
13
16
17
17
19
2.1 C++ Features
19
2.2 Fundamental Types and Derived Types
20
2.3 C++ Syntax: It Looks Like C, It Feels Like C
22
2.4 Compiling C++ Programs
23
2.5 C++ Programming Environments
24
2.6 main , Expressions and Statements
25
2.7 Input and Output
26
2.8 Constants, Pointers, and References
30
100
28
2.9 Storage Classes
30
2.10 Declarations and Definitions in C++
31
2.11 Functions
31
2.12 Structure of C++ Programs
2.13 Storeroom Operations: A C++ Programming Example
32
37
2.14 C++ in Perspective
38
2.15 Exercises
38
2.16 References
39
Chapter 3. Classes
39
3.1 Analysis of the Concept of a Class
3.2 Types and Classes
3.3 Classes and Instances
3.4 Inheritance and Encapsulation
3.5 Prototypes and Classes
3.6 Metaclasses
3.7 The Law of Demeter
40
42
42
43
44
45
46
3.8 Abstract Classes
3.9 Classes in C++
46
47
3.10 Class Specification
3.11 Examples of Classes
51
55
3.12 Member Functions
58
3.13 Operator Overloading
3.14 Function Name Overloading
60
62
3.15 Constructors
3.16 Friend Functions of a Class
65
3.17 Local Classes.
66
3.18 What Should C++ Compilers Come With?
66
3.19 Class Definitions and Include Files
66
3.20 Structures in C++
67
3.21 Constants Revisited
67
3.22 Testing Object-Oriented Software
68
3.23 File Manager Example
69
3.24 Conclusion
72
3.25 Exercises
72
3.26 References
72
Chapter 4. Inheritance
75
4.1 Analysis of the Inheritance Concept
75
4.2 Implementation Inheritance
77
4.3 Interface Inheritance and Data Inheritance
77
4.4 Inheritance and Genericity
78
4.5 Inheritance and Delegation
79
4.6 Inheritance and Exploratory Programming
4.7 Effects of Inheritance on Encapsulation
4.8 Reference to Self
80
81
82
4.9 Reusability Revisited
82
4.10 Inheritance in C++
83
4.11 Access Control Rules
87
4.12 Friends of Classes
88
4.13 Scope
91
4.14 Derived Classes in C++
92
4.15 Destructors
94
4.16 Inline Functions
95
4.17 Example of Inheritance in Banking
96
4.18 Example Using the Task Library
09
4.19 Classes in Windowing Environments
101
4,20 Static Members of Objects
104
4.21 C++ Class Categories
104
4.22 Conclusions
105
4.23 Exercises
106
4.24 References
106
Chapter 5. Polymorphism
109
5.1 Types of Polymorphism
109
5.2 Virtual Member Function
110
5.3 Mechanism of Virtual Functions
113
5.4 Abstract Classes
116
5.5 const Member Functions
116
5.6 volatile Member Functions
118
5.7 static Member Functions
119
5.8 Virtual Functions and Windows
121
5.9 Destructors
130
5.10 Virtual Base Classes
130
5.11 Achieving Reusability by Overloading
131
5.12 The lostream Facility
132
5.13 IO: Overloading the Insertion and Extraction Operators
134
5.14 IO: Flushing the Streams
136
5.15 Formatted Input and Output
136
5.16 Conclusions
137
5.17 Exercises
137
5.18 References
138
Chapter 6. Multiple Inheritance
6.1 Single versus Multiple Inheritance
6.2 Multiple Inheritance versus Aggregation
6.3 Name Collision
6.4 Conflict-Resolution Schemes
6.5 Multiple Inheritance Class Specification in C++
142
142
6.6 Mechanism of Multiple Inheritance in C++
6.7 Example Using Multiple Inheritance
146
6.8 Is Multiple Inheritance Necessary?
148
6.9 FileManager Example: Multiple Inheritance Using Task Library
149
154
6.10 Conclusions
155
6.11 Exercises
155
6.12 References
157
Chapter 7. The Actor Model
157
7.1 Actors
7.2 The Behavior of Actors
158
7.3 Computational Tasks in an Actor's Environment
158
7.4 Replacement Behavior of Actors
159
7.5 Languages Based on the Actor Model
160
7.6 Concurrency in Actor Languages
161
7.7 Comparing Actor Model to C++
162
7.8 The ACT++ System: Actors in C++
162
7.9 References
163
Chapter 8. Persistence and Object-Oriented Databases
165
8.1 Persistent Objects
165
8.2 Introducing Persistence in Existing Languages
166
8.3 Impedance Mismatch in Database Applications
167
8.4 Relational Databases versus Object-Oriented Databases
168
8.5 Object-Oriented Database Management Systems (OODBMS)
8.6 References
169
171
Chapter 9. What's New in the Object-Oriented Paradigm?
173
9.1 The Object Management Group
173
9.2 Research into Concurrency in Object-Oriented Paradigm
9.3 Issues in RPC-Based Distributed Object-Oriented Applications
175
176
9.4 Issues in Component Reuse
177
9.5 Constraints
178
9.6 Major Extensions to C++
179
9.7 Conclusions
9.8 References
Hemos recorrido un largo camino desde que Knuth escribió su serie de libros titulada El arte de la programación informática. El diseño y desarrollo de software ha evolucionado de ser una forma de arte a una ciencia de la ingeniería. Sin embargo, la ciencia de la programación informática y el desarrollo de software aún no ha alcanzado el nivel de madurez en el que sus usuarios finales reciban componentes de software fiables y fáciles de ensamblar. La plétora de plataformas de software y hardware que compiten por el dominio del mercado hace imperativo desarrollar software que pueda ejecutarse en entornos heterogéneos. El surgimiento del paradigma orientado a objetos como tecnología líder en entornos de desarrollo de software promete elevar la industria del software a un estado de estabilidad con el que hasta ahora solo se podía soñar.
Acerca de este libro
Este libro ha sido diseñado para proporcionar al lector una introducción al apasionante mundo de la programación orientada a objetos (POO). El énfasis está en presentar los diversos conceptos de diseño y desarrollo de software que se han incorporado a los fundamentos de este nuevo paradigma de programación. Este libro puede servir como una introducción completa a la programación orientada a objetos. Hay capítulos sobre cada uno de los conceptos importantes de ingeniería de software que constituyen la programación orientada a objetos, a saber, clases, herencia, polimorfismo y herencia múltiple.
Este libro también ofrece una introducción detallada a C++ como lenguaje orientado a objetos. Se asume que el lector tiene experiencia en el lenguaje de programación C. El lenguaje C++ que se trata en este libro no se ajusta a ninguna implementación particular del lenguaje. Sin embargo, su sintaxis es muy similar a la de la versión 2.1 del sistema C++ de AT&T.
0070511403
C++ and the OOP Paradigm / - 1 - Mc Graw hill - 188 páginas Ilustraciones, Tablas y Gráficas 23.3 cm x 15.5 cm
Incluye Referencias Bibliográficas
Preface 지
xill Acknowledgments
Chapter 1. The Object-Oriented Paradigm
1.1 The Software Development Process
1.2 The Object-Oriented Paradigm
1.3 Why Do We Need the Object-Oriented Paradigm?
1.4 Object-Oriented Paradigm versus SA/SD
1.5 Data Abstraction
1.6 Class
1.7 Objects
1.8 Data Manipulation
1.9 Reusability of Code
1.10 Toward an Object-Oriented Software Development Methodology
1.11 Learning Object-Oriented Programming
1.12 C++ Programming Fundamentals
1.13 Evolution of C++
1.14 An Exercise in Object-Oriented Design
1.15 Conclusions
1.16 Exercises
1.17 References
Chapter 2. The Fundamentals of C++
1
1
2
4
5
6
8
9
9
10
11
12
12
13
13
16
17
17
19
2.1 C++ Features
19
2.2 Fundamental Types and Derived Types
20
2.3 C++ Syntax: It Looks Like C, It Feels Like C
22
2.4 Compiling C++ Programs
23
2.5 C++ Programming Environments
24
2.6 main , Expressions and Statements
25
2.7 Input and Output
26
2.8 Constants, Pointers, and References
30
100
28
2.9 Storage Classes
30
2.10 Declarations and Definitions in C++
31
2.11 Functions
31
2.12 Structure of C++ Programs
2.13 Storeroom Operations: A C++ Programming Example
32
37
2.14 C++ in Perspective
38
2.15 Exercises
38
2.16 References
39
Chapter 3. Classes
39
3.1 Analysis of the Concept of a Class
3.2 Types and Classes
3.3 Classes and Instances
3.4 Inheritance and Encapsulation
3.5 Prototypes and Classes
3.6 Metaclasses
3.7 The Law of Demeter
40
42
42
43
44
45
46
3.8 Abstract Classes
3.9 Classes in C++
46
47
3.10 Class Specification
3.11 Examples of Classes
51
55
3.12 Member Functions
58
3.13 Operator Overloading
3.14 Function Name Overloading
60
62
3.15 Constructors
3.16 Friend Functions of a Class
65
3.17 Local Classes.
66
3.18 What Should C++ Compilers Come With?
66
3.19 Class Definitions and Include Files
66
3.20 Structures in C++
67
3.21 Constants Revisited
67
3.22 Testing Object-Oriented Software
68
3.23 File Manager Example
69
3.24 Conclusion
72
3.25 Exercises
72
3.26 References
72
Chapter 4. Inheritance
75
4.1 Analysis of the Inheritance Concept
75
4.2 Implementation Inheritance
77
4.3 Interface Inheritance and Data Inheritance
77
4.4 Inheritance and Genericity
78
4.5 Inheritance and Delegation
79
4.6 Inheritance and Exploratory Programming
4.7 Effects of Inheritance on Encapsulation
4.8 Reference to Self
80
81
82
4.9 Reusability Revisited
82
4.10 Inheritance in C++
83
4.11 Access Control Rules
87
4.12 Friends of Classes
88
4.13 Scope
91
4.14 Derived Classes in C++
92
4.15 Destructors
94
4.16 Inline Functions
95
4.17 Example of Inheritance in Banking
96
4.18 Example Using the Task Library
09
4.19 Classes in Windowing Environments
101
4,20 Static Members of Objects
104
4.21 C++ Class Categories
104
4.22 Conclusions
105
4.23 Exercises
106
4.24 References
106
Chapter 5. Polymorphism
109
5.1 Types of Polymorphism
109
5.2 Virtual Member Function
110
5.3 Mechanism of Virtual Functions
113
5.4 Abstract Classes
116
5.5 const Member Functions
116
5.6 volatile Member Functions
118
5.7 static Member Functions
119
5.8 Virtual Functions and Windows
121
5.9 Destructors
130
5.10 Virtual Base Classes
130
5.11 Achieving Reusability by Overloading
131
5.12 The lostream Facility
132
5.13 IO: Overloading the Insertion and Extraction Operators
134
5.14 IO: Flushing the Streams
136
5.15 Formatted Input and Output
136
5.16 Conclusions
137
5.17 Exercises
137
5.18 References
138
Chapter 6. Multiple Inheritance
6.1 Single versus Multiple Inheritance
6.2 Multiple Inheritance versus Aggregation
6.3 Name Collision
6.4 Conflict-Resolution Schemes
6.5 Multiple Inheritance Class Specification in C++
142
142
6.6 Mechanism of Multiple Inheritance in C++
6.7 Example Using Multiple Inheritance
146
6.8 Is Multiple Inheritance Necessary?
148
6.9 FileManager Example: Multiple Inheritance Using Task Library
149
154
6.10 Conclusions
155
6.11 Exercises
155
6.12 References
157
Chapter 7. The Actor Model
157
7.1 Actors
7.2 The Behavior of Actors
158
7.3 Computational Tasks in an Actor's Environment
158
7.4 Replacement Behavior of Actors
159
7.5 Languages Based on the Actor Model
160
7.6 Concurrency in Actor Languages
161
7.7 Comparing Actor Model to C++
162
7.8 The ACT++ System: Actors in C++
162
7.9 References
163
Chapter 8. Persistence and Object-Oriented Databases
165
8.1 Persistent Objects
165
8.2 Introducing Persistence in Existing Languages
166
8.3 Impedance Mismatch in Database Applications
167
8.4 Relational Databases versus Object-Oriented Databases
168
8.5 Object-Oriented Database Management Systems (OODBMS)
8.6 References
169
171
Chapter 9. What's New in the Object-Oriented Paradigm?
173
9.1 The Object Management Group
173
9.2 Research into Concurrency in Object-Oriented Paradigm
9.3 Issues in RPC-Based Distributed Object-Oriented Applications
175
176
9.4 Issues in Component Reuse
177
9.5 Constraints
178
9.6 Major Extensions to C++
179
9.7 Conclusions
9.8 References
Hemos recorrido un largo camino desde que Knuth escribió su serie de libros titulada El arte de la programación informática. El diseño y desarrollo de software ha evolucionado de ser una forma de arte a una ciencia de la ingeniería. Sin embargo, la ciencia de la programación informática y el desarrollo de software aún no ha alcanzado el nivel de madurez en el que sus usuarios finales reciban componentes de software fiables y fáciles de ensamblar. La plétora de plataformas de software y hardware que compiten por el dominio del mercado hace imperativo desarrollar software que pueda ejecutarse en entornos heterogéneos. El surgimiento del paradigma orientado a objetos como tecnología líder en entornos de desarrollo de software promete elevar la industria del software a un estado de estabilidad con el que hasta ahora solo se podía soñar.
Acerca de este libro
Este libro ha sido diseñado para proporcionar al lector una introducción al apasionante mundo de la programación orientada a objetos (POO). El énfasis está en presentar los diversos conceptos de diseño y desarrollo de software que se han incorporado a los fundamentos de este nuevo paradigma de programación. Este libro puede servir como una introducción completa a la programación orientada a objetos. Hay capítulos sobre cada uno de los conceptos importantes de ingeniería de software que constituyen la programación orientada a objetos, a saber, clases, herencia, polimorfismo y herencia múltiple.
Este libro también ofrece una introducción detallada a C++ como lenguaje orientado a objetos. Se asume que el lector tiene experiencia en el lenguaje de programación C. El lenguaje C++ que se trata en este libro no se ajusta a ninguna implementación particular del lenguaje. Sin embargo, su sintaxis es muy similar a la de la versión 2.1 del sistema C++ de AT&T.
0070511403


















