Table of Contents About the Tutorial .................................................................................................................................... i Audience .................................................................................................................................................. i Prerequisites ............................................................................................................................................ i
i
Copyright & Disclaimer............................................................................................................................. i Table of Contents ..................................................................................................................................... i
1.
OVERVIEW........................................................................................................................... 1 Object-Oriented Programming ................................................................................................................ 1 Standard Libraries ................................................................................................................................... 1 The ANSI Standard .................................................................................................................................. 1 Learning C++............................................................................................................................................ 2 Use of C++ ............................................................................................................................................... 2
2.
ENVIORNMENT SETUP......................................................................................................... 3 Try it Option Online ................................................................................................................................. 3 Local Environment Setup......................................................................................................................... 3 Installing GNU C/C++ Compiler: ............................................................................................................... 4
3.
BASIC SYNTAX ...................................................................................................................... 6 C++ Program Structure: ........................................................................................................................... 6 Compile & Execute C++ Program: ............................................................................................................ 7 Semicolons & Blocks in C++ ..................................................................................................................... 7 C++ Identifiers ......................................................................................................................................... 8 C++ Keywords.......................................................................................................................................... 8 Trigraphs ................................................................................................................................................. 9 Whitespace in C++ ................................................................................................................................. 10
4.
COMMENTS IN C++ ........................................................................................................... 11
5.
DATA TYPES ....................................................................................................................... 13 Primitive Built-in Types ......................................................................................................................... 13 typedef Declarations ............................................................................................................................. 15
ii
Enumerated Types ................................................................................................................................ 16
6.
VARIABLE TYPES ................................................................................................................ 17 Variable Definition in C++ ...................................................................................................................... 17 Variable Declaration in C++ ................................................................................................................... 18 Lvalues and Rvalues .............................................................................................................................. 20
7.
VARIABLE SCOPE ............................................................................................................... 21 Local Variables ...................................................................................................................................... 21 Global Variables .................................................................................................................................... 22 Initializing Local and Global Variables ................................................................................................... 23
8.
CONSTANTS/LITERALS ....................................................................................................... 24 Integer Literals ...................................................................................................................................... 24 Floating-point Literals ........................................................................................................................... 24 Boolean Literals..................................................................................................................................... 25 Character Literals .................................................................................................................................. 25 String Literals ........................................................................................................................................ 26 Defining Constants ................................................................................................................................ 27
9.
MODIFIER TYPES................................................................................................................ 29 Type Qualifiers in C++............................................................................................................................ 30
10. STORAGE CLASSES ............................................................................................................. 31 The auto Storage Class .......................................................................................................................... 31 The register Storage Class ..................................................................................................................... 31 The static Storage Class ......................................................................................................................... 31 The extern Storage Class ....................................................................................................................... 33 The mutable Storage Class .................................................................................................................... 34
11. OPERATORS ....................................................................................................................... 35 iii
Arithmetic Operators ............................................................................................................................ 35 Relational Operators ............................................................................................................................. 37 Logical Operators .................................................................................................................................. 40 Bitwise Operators ................................................................................................................................. 41 Assignment Operators........................................................................................................................... 44 Misc Operators...................................................................................................................................... 47 Operators Precedence in C++ ................................................................................................................ 48
12. LOOP TYPES ....................................................................................................................... 51 While Loop ............................................................................................................................................ 52 for Loop................................................................................................................................................. 54 do…while Loop ...................................................................................................................................... 56 nested Loops ......................................................................................................................................... 58 Loop Control Statements....................................................................................................................... 60 Break Statement ................................................................................................................................... 61 continue Statement .............................................................................................................................. 63 goto Statement ..................................................................................................................................... 65 The Infinite Loop ................................................................................................................................... 67
13. DECISION-MAKING STATEMENTS ...................................................................................... 69 If Statement .......................................................................................................................................... 70 if…else Statement ................................................................................................................................. 72 if...else if...else Statement ..................................................................................................................... 73 Switch Statement .................................................................................................................................. 75 Nested if Statement .............................................................................................................................. 78 The ? : Operator .................................................................................................................................... 81
14. FUNCTIONS ....................................................................................................................... 82 Defining a Function ............................................................................................................................... 82
iv
Function Declarations ........................................................................................................................... 83 Calling a Function .................................................................................................................................. 84 Function Arguments .............................................................................................................................. 85 Call by Value ......................................................................................................................................... 86 Call by Pointer ....................................................................................................................................... 87 Call by Reference................................................................................................................................... 89 Default Values for Parameters .............................................................................................................. 90
15. NUMBERS .......................................................................................................................... 93 Defining Numbers in C++ ....................................................................................................................... 93 Math Operations in C++ ........................................................................................................................ 94 Random Numbers in C++ ....................................................................................................................... 96
16. ARRAYS .............................................................................................................................. 98 Declaring Arrays .................................................................................................................................... 98 Initializing Arrays .................................................................................................................................. 98 Accessing Array Elements ...................................................................................................................... 99 Arrays in C++ ....................................................................................................................................... 100 Pointer to an Array.............................................................................................................................. 103 Passing Arrays to Functions ................................................................................................................. 105 Return Array from Functions ............................................................................................................... 107
17. STRINGS........................................................................................................................... 111 The C-Style Character String ................................................................................................................ 111 The String Class in C++ ......................................................................................................................... 114
18. POINTERS ........................................................................................................................ 116 What are Pointers? ............................................................................................................................. 116 Using Pointers in C++........................................................................................................................... 117 Pointers in C++ .................................................................................................................................... 118
v
Null Pointers ....................................................................................................................................... 119 Pointer Arithmetic............................................................................................................................... 120 Pointers vs Arrays ............................................................................................................................... 124 Array of Pointers ................................................................................................................................. 126 Pointer to a Pointer ............................................................................................................................. 128 Passing Pointers to Functions .............................................................................................................. 130 Return Pointer from Functions ............................................................................................................ 132
19. REFERENCES .................................................................................................................... 135 References vs Pointers ........................................................................................................................ 135 Creating References in C++ .................................................................................................................. 135 References as Parameters ................................................................................................................... 137 Reference as Return Value .................................................................................................................. 138
20. DATE AND TIME............................................................................................................... 141 Current Date and Time ........................................................................................................................ 142 Format Time using struct tm ............................................................................................................... 143
21. BASIC INPUT/OUTPUT ..................................................................................................... 145 I/O Library Header Files....................................................................................................................... 145 The Standard Output Stream (cout) .................................................................................................... 145 The Standard Input Stream (cin).......................................................................................................... 146 The Standard Error Stream (cerr) ........................................................................................................ 147 The Standard Log Stream (clog) ........................................................................................................... 148
22. DATA STRUCTURES .......................................................................................................... 149 Defining a Structure ............................................................................................................................ 149 Accessing Structure Members ............................................................................................................. 150
vi
Structures as Function Arguments....................................................................................................... 151 Pointers to Structures ......................................................................................................................... 153 The typedef Keyword .......................................................................................................................... 155
23. CLASSES AND OBJECTS .................................................................................................... 157 C++ Class Definitions ........................................................................................................................... 157 Define C++ Objects .............................................................................................................................. 157 Accessing the Data Members .............................................................................................................. 158 Classes & Objects in Detail .................................................................................................................. 159 Class Access Modifiers ......................................................................................................................... 163 The public Members............................................................................................................................ 164 The private Members .......................................................................................................................... 165 The protected Members...................................................................................................................... 167 Constructor & Destructor .................................................................................................................... 169 Parameterized Constructor ................................................................................................................. 170 The Class Destructor............................................................................................................................ 173 Copy Constructor ................................................................................................................................ 174 Friend Functions .................................................................................................................................. 179 Inline Functions ................................................................................................................................... 181 this Pointer ......................................................................................................................................... 182 Pointer to C++ Classes ......................................................................................................................... 184 Static Members of a Class ................................................................................................................... 185 Static Function Members .................................................................................................................... 187
24. INHERITANCE................................................................................................................... 190 Base & Derived Classes........................................................................................................................ 190 Access Control and Inheritance ........................................................................................................... 192
vii
Type of Inheritance ............................................................................................................................. 192 Multiple Inheritance ........................................................................................................................... 193
25. OVERLOADING (OPERATOR & FUNCTION) ....................................................................... 196 Function Overloading in C++ ............................................................................................................... 196 Operators Overloading in C++ ............................................................................................................. 197 Overloadable/Non-overloadable Operators ........................................................................................ 200 Operator Overloading Examples ......................................................................................................... 201 Unary Operators Overloading ............................................................................................................. 201 Increment (++) and Decrement (- -) Operators .................................................................................... 203 Binary Operators Overloading ............................................................................................................. 205 Relational Operators Overloading ....................................................................................................... 208 Input/Output Operators Overloading.................................................................................................. 210 ++ and - - Operators Overloading ........................................................................................................ 212 Assignment Operators Overloading .................................................................................................... 214 Function Call () Operator Overloading ................................................................................................. 215 Subscripting [ ] Operator Overloading ................................................................................................. 217 Class Member Access Operator - > Overloading .................................................................................. 219
26. POLYMORPHISM.............................................................................................................. 223 Virtual Function .................................................................................................................................. 226 Pure Virtual Functions ......................................................................................................................... 226
27. DATA ABSTRACTION ........................................................................................................ 227 Access Labels Enforce Abstraction ....................................................................................................... 228 Benefits of Data Abstraction ............................................................................................................... 228 Data Abstraction Example ................................................................................................................... 228 Designing Strategy .............................................................................................................................. 230
28. DATA ENCAPSULATION.................................................................................................... 231 viii
Data Encapsulation Example ............................................................................................................... 232 Designing Strategy .............................................................................................................................. 233
29. INTERFACES ..................................................................................................................... 234 Abstract Class Example ....................................................................................................................... 234 Designing Strategy .............................................................................................................................. 236
30. FILES AND STREAMS ........................................................................................................ 238 Opening a File ..................................................................................................................................... 238 Closing a File ....................................................................................................................................... 239 Writing to a File ................................................................................................................................... 239 Reading from a File ............................................................................................................................. 239 Read & Write Example ........................................................................................................................ 240 File Position Pointers ........................................................................................................................... 242
31. EXCEPTION HANDLING ...................................................................................................... 243 Throwing Exceptions ........................................................................................................................... 244 Catching Exceptions ............................................................................................................................ 244 C++ Standard Exceptions ..................................................................................................................... 246 Define New Exceptions ....................................................................................................................... 247
32. DYNAMIC MEMORY ......................................................................................................... 249 The new and delete Operators ............................................................................................................ 249 Dynamic Memory Allocation for Arrays .............................................................................................. 251 Dynamic Memory Allocation for Objects ............................................................................................. 251
33. NAMESPACES .................................................................................................................. 253 Defining a Namespace ......................................................................................................................... 253 The using directive .............................................................................................................................. 254
ix
Discontiguous Namespaces ................................................................................................................. 256 Nested Namespaces ............................................................................................................................ 256
34. TEMPLATES ..................................................................................................................... 258 Function Template .............................................................................................................................. 258 Class Template .................................................................................................................................... 259
35. PREPROCESSOR ............................................................................................................... 263 The #define Preprocessor .................................................................................................................... 263 Function-Like Macros .......................................................................................................................... 264 Conditional Compilation ..................................................................................................................... 264 The # and # # Operators ...................................................................................................................... 266 Predefined C++ Macros ....................................................................................................................... 268
36. SIGNAL HANDLING .......................................................................................................... 270 The signal() Function ........................................................................................................................... 270 The raise() Function............................................................................................................................. 272
37. MULTITHREADING ........................................................................................................... 274 Creating Threads ................................................................................................................................. 274 Terminating Threads ........................................................................................................................... 275 Passing Arguments to Threads ............................................................................................................ 277 Joining and Detaching Threads ............................................................................................................ 278
38. WEB PROGRAMMING...................................................................................................... 282 What is CGI? ........................................................................................................................................ 282 Web Browsing ..................................................................................................................................... 282 CGI Architecture Diagram .................................................................................................................... 282 Web Server Configuration ................................................................................................................... 283 First CGI Program ................................................................................................................................ 284
x
My First CGI program .......................................................................................................................... 284 HTTP Header ....................................................................................................................................... 285 CGI Environment Variables.................................................................................................................. 285 C++ CGI Library .................................................................................................................................... 289 GET and POST Methods ....................................................................................................................... 289 Passing Information Using GET Method .............................................................................................. 289 Simple URL Example: Get Method ....................................................................................................... 290 Simple FORM Example: GET Method ................................................................................................... 291 Passing Information Using POST Method ............................................................................................ 292 Passing Checkbox Data to CGI Program ............................................................................................... 292 Passing Radio Button Data to CGI Program ......................................................................................... 294 Passing Text Area Data to CGI Program ............................................................................................... 296 Passing Dropdown Box Data to CGI Program....................................................................................... 298 Using Cookies in CGI ............................................................................................................................ 299 How It Works ...................................................................................................................................... 299 Setting up Cookies ............................................................................................................................... 300 Retrieving Cookies............................................................................................................................... 301 File Upload Example ............................................................................................................................ 303
39. STL TUTORIAL .................................................................................................................. 306 40. STANDARD LIBRARY......................................................................................................... 309 The Standard Function Library ............................................................................................................ 309 The Object Oriented Class Library ....................................................................................................... 309
xi
1. OVERVIEW
C++
C++ is a statically typed, compiled, general-purpose, case-sensitive, free-form programming language that supports procedural, object-oriented, and generic programming. C++ is regarded as a middle-level language, as it comprises a combination of both high-level and low-level language features. C++ was developed by Bjarne Stroustrup starting in 1979 at Bell Labs in Murray Hill, New Jersey, as an enhancement to the C language and originally named C with Classes but later it was renamed C++ in 1983. C++ is a superset of C, and that virtually any legal C program is a legal C++ program. Note: A programming language is said to use static typing when type checking is performed during compile-time as opposed to run-time. Object-Oriented Programming C++ fully supports object-oriented programming, including the four pillars of object-oriented development:
Encapsulation
Data hiding
Inheritance
Polymorphism
Standard Libraries Standard C++ consists of three important parts:
The core language giving all the building blocks including variables, data types and literals, etc.
The C++ Standard Library giving a rich set of functions manipulating files, strings, etc.
The Standard Template Library (STL) giving a rich set of methods manipulating data structures, etc.
The ANSI Standard The ANSI standard is an attempt to ensure that C++ is portable; that code you write for Microsoft's compiler will compile without errors, using a compiler on a Mac, UNIX, a Windows box, or an Alpha.
1
C++
The ANSI standard has been stable for a while, and all the major C++ compiler manufacturers support the ANSI standard. Learning C++ The most important thing while learning C++ is to focus on concepts. The purpose of learning a programming language is to become a better programmer; that is, to become more effective at designing and implementing new systems and at maintaining old ones. C++ supports a variety of programming styles. You can write in the style of Fortran, C, Smalltalk, etc., in any language. Each style can achieve its aims effectively while maintaining runtime and space efficiency. Use of C++ C++ is used by hundreds of thousands of programmers in essentially every application domain. C++ is being highly used to write device drivers and other software that rely on direct manipulation of hardware under real-time constraints. C++ is widely used for teaching and research because it is clean enough for successful teaching of basic concepts. Anyone who has used either an Apple Macintosh or a PC running Windows has indirectly used C++ because the primary user interfaces of these systems are written in C++.
2
2. ENVIORNMENT SETUP
C++
Try it Option Online You really do not need to set up your own environment to start learning C++ programming language. Reason is very simple, we have already set up C++ Programming environment online, so that you can compile and execute all the available examples online at the same time when you are doing your theory work. This gives you confidence in what you are reading and to check the result with different options. Feel free to modify any example and execute it online. Try the following example using our online compiler option available at http://www.compileonline.com/ #include using namespace std;
int main() { cout 2 will give 15 which is 0000 1111
Try the following example to understand all the bitwise operators available in C++. Copy and paste the following C++ program in test.cpp file and compile and run this program. #include using namespace std;
main() { unsigned int a = 60;
// 60 = 0011 1100
unsigned int b = 13;
// 13 = 0000 1101
int c = 0;
c = a & b;
// 12 = 0000 1100
cout isEmpty() && fi != (*formData).end()) { cout
This section contains free e-books and guides on C, some of the resources in this section can be viewed online and some of them can be downloaded. Goal of this book is to teach C to students who have No programming experience in any language. Topics covered includes: Computer Science and Programming, C Programs: Form. Even though DEV-C is filled with advanced compiler, debugger and a wide array of dev tools, it’s installation package is quite small (only around 50 MB) and therefore can be easily installed on any modern Windows PC or laptop. Just follow the onscreen instructions, and in mere seconds DEV C plus plus will be ready for running. Aug 12, 2019 Download Old NCERT Books – One-click Download for Free. We have conducted ample and high-level online research work and have brought to you the finest collection of Old NCERT Books resources exclusively for our users. Click on the link below to get your own copy of old NCERT book PDF. Oct 30, 2018 Dev-C is an IDE that empowers its users to develop a project with as many source files integrated into it as they require. Writing options. This program gives many options to its users in terms of writing styles. The keywords and C elements can be highlighted while the user is writing on the project.
Free Pdf Books Download
Originally released by Bloodshed Software, but abandoned in 2006, it has recently been forked by Orwell, including a choice of more recent compilers. It can be downloaded from:
http://orwelldevcpp.blogspot.com
Installation
Run the downloaded executable file, and follow its instructions. The default options are fine.Support for C++11
By default, support for the most recent version of C++ is not enabled. It shall be explicitly enabled by going to:Tools -> Compiler Options
Here, select the 'Settings' tab, and within it, the 'Code Generation' tab. There, in 'Language standard (-std)' select 'ISO C++ 11':
Ok that. You are now ready to compile C++11!
Compiling console applications
To compile and run simple console applications such as those used as examples in these tutorials it is enough with opening the file with Dev-C++ and hitF11
.As an example, try:
File -> New -> Source File
(or Ctrl+N
)There, write the following:
Then:
File -> Save As...
(or Ctrl+Alt+S
)And save it with some file name with a
.cpp
extension, such as example.cpp
.Now, hitting
F11
should compile and run the program.If you get an error on the type of
x
, the compiler does not understand the new meaning given to auto
since C++11. Please, make sure you downloaded the latest version as linked above, and that you enabled the compiler options to compile C++11 as described above.