Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword or section
Like this
23Activity

Table Of Contents

0 of .
Results for:
No results containing your search query
P. 1
c++

c++

Ratings: (0)|Views: 326 |Likes:
Published by Ethan Hunt

More info:

Published by: Ethan Hunt on Jul 25, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/08/2012

pdf

text

original

 
More C++
Tim LoveJuly 5, 2001
Abstract
This document aims to provide people who have done an introductoryC++ course the skills required to write bigger programs. Online versionsare at http://www-h.eng.cam.ac.uk/help/tpl/languages/C++/doc/doc.html
1
(HTML); http://www-h.eng.cam.ac.uk/help/tpl/languages/C++/doc/doc.pdf 
2
(PDF); and http://www-h.eng.cam.ac.uk/help/documentation/docsource/index.html
3
(LaTeX).
Contents
1 Introduction 42 Review 4
2.1 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Built-in Types and Enumerations . . . . . . . . . . . . . . . . . . . . 52.3 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.4 Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4.1 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4.2 switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.5 Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.5.1 while, do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.5.2 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.6 Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.6.1 arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.6.2 structures and classes . . . . . . . . . . . . . . . . . . . . . . 82.7 Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.8 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.9 Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Memory Allocation 124 Scope and Namespaces 12
4.1 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Object-orientated programming 13
1
http://www-h.eng.cam.ac.uk/help/tpl/languages/C++/doc/doc.html
2
http://www-h.eng.cam.ac.uk/help/tpl/languages/C++/doc/doc.pdf 
3
http://www-h.eng.cam.ac.uk/help/documentation/docsource/index.html
1
 
CONTENTS CONTENT
6 Classes 14
6.1 Derived classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146.2 Friend classes and functions . . . . . . . . . . . . . . . . . . . . . . . 156.3 Class member privacy . . . . . . . . . . . . . . . . . . . . . . . . . . 156.4 Static members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166.5 Const members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166.6 Static Const members . . . . . . . . . . . . . . . . . . . . . . . . . . 166.7 Overriding behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7 Templates 178 The Standard Library 18
8.1 Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188.2 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188.2.1 Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198.2.2 Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198.2.3 Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198.3 vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208.4 Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218.5 list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228.6 map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228.7 bitset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248.8 valarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248.9 Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258.10 Set algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268.11 Using member functions . . . . . . . . . . . . . . . . . . . . . . . . . 278.12 Predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288.12.1 Creating predicates . . . . . . . . . . . . . . . . . . . . . . . . 288.12.2 Adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288.13 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9 Dodgems: A longer exercise 29
9.1 Arithmetic Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . 299.2 Geometric Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . 299.3 Graphics Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309.4 Decision Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309.5 Creating the Dodgem class . . . . . . . . . . . . . . . . . . . . . . . 309.6 Putting it all together . . . . . . . . . . . . . . . . . . . . . . . . . . 31
10 Exceptions 3111 More on Classes 32
11.1 Virtual members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3211.2 Abstract Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3311.3 Redening operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 3311.4 A class denition example . . . . . . . . . . . . . . . . . . . . . . . . 3411.5 Redening [ ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3611.6 Redening () . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3711.7 Redefining
->
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3711.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
 
CONTENTS CONTENT
12 Input/Output 38
12.1 Simple I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3812.2 Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3912.3 Stream Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4012.4 Output of User-Dened types . . . . . . . . . . . . . . . . . . . . . . 4012.5 Input of User-Dened types . . . . . . . . . . . . . . . . . . . . . . . 4012.6 String streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
13 Casts 4114 Limits 4215 Performance 4216 Debugging 4217 Common Diculties and Mistakes 4318 Program Development 44
18.1 Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4518.2 Makeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
19 Specialist Areas 47
19.1 Maths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4719.2 Hardware Interfacing: bit operations and explicit addresses . . . . . 4919.3 Using routines from other languages . . . . . . . . . . . . . . . . . . 4919.3.1 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4919.3.2 Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
20 The CUED Teaching System setup 5021 A case history:
linkscan
50
21.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5121.2 Code Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5121.3 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5121.4 Comparison of the C and C++ versions . . . . . . . . . . . . . . . . 52
22 C habits to give up 5223 Non-essentials 53
23.1 virtual inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5323.2 typeid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5423.3 Pointers to Members . . . . . . . . . . . . . . . . . . . . . . . . . . . 5423.4 virtual destructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5423.5 Auto pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5423.6 operator functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5423.7 union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5423.8 Making New Containers . . . . . . . . . . . . . . . . . . . . . . . . . 5523.9 Non-type template parameters . . . . . . . . . . . . . . . . . . . . . 5523.10Initialising from tables . . . . . . . . . . . . . . . . . . . . . . . . . . 55
24 Glossary 5525 References 56
3

Activity (23)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
EzKeezE liked this
sangita phunde liked this
rajaramansuresh liked this
Kan15 liked this
Kan15 liked this
arpita1424 liked this
Kan15 liked this
gefinna liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->