Multi-Paradigm Programming using C++ by Dirk VermeirMulti-Paradigm Programming using C++ by Dirk Vermeir

Multi-Paradigm Programming using C++

byDirk Vermeir

Paperback | July 10, 2001

Pricing and Purchase Info

$181.71 online 
$219.50 list price save 17%
Earn 909 plum® points

Prices and offers may vary in store

Quantity:

In stock online

Ships free on orders over $25

Not available in stores

about

An Introduction to Multi-Paradigm Programming using C++ is a self-contained reference book for those studying and using C++. Starting from scratch, Dirk Vermeir explains the idea of address, value and type in C++ before quickly moving on to cover the more important aspects of the language such as classes, templates, generic programming and inheritance. He includes recent developments in C++, such as STL and the iostream library, and there is also a chapter devoted to program design principles. By using plenty of examples to illustrate the text, the reader is stimulated and inspired to see how they can use what they have learnt in other more sophisticated applications. All the examples from the text, including some larger example programs are available on the author's website - http://tinf2.vub.ac.be/cpp/index.html
Title:Multi-Paradigm Programming using C++Format:PaperbackPublished:July 10, 2001Publisher:Springer-Verlag/Sci-Tech/TradeLanguage:English

The following ISBNs are associated with this title:

ISBN - 10:1852334835

ISBN - 13:9781852334833

Look for similar items by category:

Reviews

Table of Contents

1 Basic Concepts of C++.- 1.1 Objects, Values, Types, Variables.- 1.1.1 Objects and Addresses.- 1.1.2 Values and Types.- 1.1.3 Referring to Objects and Values: Variables, Constants, Ex-pressions.- 1.2 Defining and Manipulating Objects.- 1.3 References.- 1.4 Functions.- 1.4.1 Defining a function.- 1.4.2 Calling a function.- 1.4.3 More on Parameter Passing.- 1.5 Program Structure.- 1.5.1 Translation Units, Definitions and Declarations.- 1.5.2 The Compilation Process.- 1.5.3 Program Organization.- 1.5.4 Linking and Executing a Program.- 1.6 Syntactic and Lexical Considerations.- 1.6.1 Identifiers and Keywords.- 1.6.2 Comments.- 1.7 Scopes and Namespaces.- 1.7.1 Scopes.- 1.7.2 Namespaces.- 2 Built-inTypes.- 2.1 ArithmeticTypes.- 2.2 Conversionsfor Arithmetic Types.- 2.3 ArithmeticType Operations.- 2.4 String Literals.- 3 Functions.- 3.1 Function Declarations.- 3.1.1 Function Types.Signatures.- 3.1.2 Default Arguments.- 3.1.3 UnspecifiedNumber of Arguments.- 3.1.4 Inline Functions.- 3.2 Overloading.- 3.3 Function Definitions.- 3.3.1 Statements.- 3.3.2 Control Flow Statements.- The compound statement and the sequence operator.- The if statement and the? operator.- The while statements.- The for statement.- The switch statement.- The return, break and continue statements.- 3.3.3 Local and Static Variables.- Local object lifetime.- Persistent local objects.- 4 User-Defined Types.- 4.1 Abstract Data Types.- 4.2 Classes.- 4.2.1 Class Members. Access Specification.- 4.2.2 Class Objects.- 4.2.3 Data Member Declarationsand Object Layout.- 4.2.4 Class Scope.- 4.2.5 Function Member Declaration.- 4.2.6 OverloadingMember Functions.- 4.2.7 Initializing a Class Object.- The default constructor.- The copy constructor.- 4.2.8 Function Member Definition.- 4.2.9 Inline Function Members.- 4.2.10 Member Functions with Default Parameters.- 4.2.11 User-Defined Conversions.- 4.2.12 Operator Overloading.- Overloading the assignment Operator.- Overloading the increment and decrement Operators.- Forbidding Operators.- 4.2.13 Finalizing an Object.- 4.2.14 Member Objects.- 4.2.15 Friends.- 4.2.16 Nested Classes.- 4.2.17 Static Members.- 4.2.18 Implementation Aspects.- 4.2.19 Example: the Rational Class.- 4.3 Enumerations.- 4.4 Typedef.- 5 Built-in Type Constructors.- 5.1 Constant Objects.- 5.2 Pointers.- 5.2.1 Pointers, Addresses, Dereferencing.- 5.2.2 Handies.- 5.2.3 Member Selection from Pointers.- 5.2.4 Constant Pointers.- 5.2.5 Pointers vs. References.- 5.2.6 The this Pointer.- 5.3 Arrays.- 5.3.1 Initializing an Array.- 5.3.2 Arrays vs. Pointers, Pointer Arithmetic.- 5.3.3 Array Parameters.- 5.3.4 Multidimensional Arrays.- 5.4 Command Line Processing.- 5.5 Pointers to Functions.- 5.6 Pointers to Members.- 5.7 Memory Management.- 5.7.1 Static, Global, Automatic and Member Objects.- 5.7.2 Free Objects.- 5.7.3 Encapsulating Pointers.- 5.8 More Operator Overloading.- 5.8.1 Overloading new, delete.- 5.8.2 PlacementNew.- 5.8.3 Smart Pointers.- 6 User-DefinedTypeConstructors.- 6.1 Function Templates.- 6.1.1 Template Argument Deduction.- 6.1.2 Overloading Function Templates.- 6.1.3 Explicit Specializations of Function Templates.- 6.1.4 A Generic Sort function.- 6.2 Class Templates.- 6.2.1 Friends of Class Templates.- 6.2.2 Nested Class Templates.- 6.2.3 Function Objects.- 6.2.4 Class Template Specialization.- 6.2.5 Reference Counting Pointers.- 6.2.6 Auto Pointers.- 7 Generic Program ming Using the STL.- 7.1 Generic Programming.- 7.2 Iterators.- 7.2.1 Types Associated with an Iterator.- 7.2.2 Iterator Traits.- 7.2.3 Dispatching on the Iterator Category.- 7.3 Stream Iterators.- 7.3.1 Input Stream Iterator.- 7.3.2 Output Stream Iterator.- 7.4 STL Containers.- 7.4.1 Pair.- 7.4.2 List.- 7.4.3 Vector.- 7.4.4 Map.- 7.4.5 Set.- 7.4.6 Other Containers.- 7.4.7 Container Adaptors.- 7.5 STL Algorithms.- 7.5.1 Non-mutating Algorithms.- Finding elements in a ränge.- Finding subranges.- Counting elements in a ränge.- Processing a ränge.- Comparing ranges.- Minimum and maximum.- 7.5.2 Basic Mutating Algorithms.- Copying ranges.- Swapping elements.- Transforming a ränge.- Replacing elements in a ränge.- Filling a ränge.- Removing elements.- Permuting algorithms.- Partitioning ranges.- Random shuffling and sampling.- Generalized numeric algorithms.- 7.5.3 Sorting and Searching.- Sorting ranges.- Operations on sorted ranges.- Set Operations.- Heap Operations.- 7.6 Iterator Adaptors.- 7.6.1 Insert Iterators.- 7.6.2 Reverse Iterators.- 8 Subtypes and Inheritance.- 8.1 Derived Classes.- 8.1.1 Construction and Destruction of Derived Class Objects.- 8.1.2 Inheritance and Scope.- 8.1.3 Inheritance and Conversions.- 8.1.4 Inheritance and Arrays.- 8.2 Virtual Member Functions.- 8.2.1 Implementation of Virtual Member Functions.- 8.2.2 Pure Virtual Function Members and Abstract Classes.- 8.2.3 Virtual Destructors.- 8.3 Derivation and Access Control.- 8.3.1 Protected Members.- 8.3.2 Protected and Private Derivation.- 8.4 Multiple and Virtual Inheritance.- 8.4.1 Multiple Inheritance.- 8.4.2 Implementing Multiple Inheritance.- 8.4.3 Virtual Inheritance.- 8.5 Object-Oriented Programming.- 8.5.1 Class Hierarchies.- 8.5.2 Polymorphism.- 8.6 Run-Time Type Identification.- 9 Exceptions.- 9.1 Throwing and Catching Exceptions.- 9.2 Run-Time Behaviour.- 9.3 Exceptions, Constructors and Destructors.- 9.3.1 Exceptions and Resource Management.- 9.3.2 Constructors Throwing Exceptions.- 9.3.3 Destructors Throwing Exceptions.- 9.4 Exception Specifications.- 9.5 Standard Exceptions.- 10 Iostreams.- 10.1 Requirements.- 10.2 Design.- 10.3 Streambuf.- 10.4 Stream Base Classes.- 10.4.1 los_base.- 10.4.2 Basic_ios(CharT,Traits).- 10.5 Stream Classes.- 10.5.1 Basic_istream(CharT,Traits).- 10.5.2 Basic_ostream(CharT,Traits).- 10.5.3 Basic_iostream(CharT,Traits).- 10.6 Manipulators.- 10.7 File Streams.- 10.7.1 Basic_ifstream(CharT,Traits).- 10.7.2 Basic_ofstream(CharT,Traits).- 10.7.3 Basic_fstream(CharT,Traits).- 10.8 String Streams.- 11 Introduction to Program Design.- 11.1 Motivation: Properties of Good Programs.- 11.2 Abstractions.- 11.3 Criteria For Good Abstractions.- 11.4 The Design Process.- 11.4.1 Finding Abstractions.- 11.4.2 Designing Classes.- 11.4.3 Refactoring.- 11.4.4 Documentation.- 11.4.5 Patterns.- A C++ Operators.- B The String Class.