C++ Tutorial

September 8, 2017 | Author: abhishekaks97 | Category: Data Type, Integer (Computer Science), C++, Variable (Computer Science), C (Programming Language)
Share Embed Donate


Short Description

a very simple and easy tutorial for learning c++ from basics to advance....

Description

C++ Tutorial

C++TUTORIAL

Simply Easy Learning by tutorialspoint.com

tutorialspoint.com i

ABOUT THE TUTORIAL

C++ Tutorial C++ is a middle-level programming language developed by Bjarne Stroustrup starting in 1979 at Bell Labs. C++ runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX. This reference will take you through simple and practical approach while learning C++ Programming language.

Audience This reference has been prepared for the beginners to help them understand the basic to advanced concepts related to C++ Programming languages.

Prerequisites Before you start doing practice with various types of examples given in this reference, I'm making an assumption that you are already aware about what is a computer program and what is a computer programming language?

Copyright & Disclaimer Notice All

the content and graphics on this tutorial are the property of tutorialspoint.com. Any content from tutorialspoint.com or this tutorial may not be redistributed or reproduced in any way, shape, or form without the written permission of tutorialspoint.com. Failure to do so is a violation of copyright laws. This tutorial may contain inaccuracies or errors and tutorialspoint provides no guarantee regarding the accuracy of the site or its contents including this tutorial. If you discover that the tutorialspoint.com site or this tutorial content contains some errors, please contact us at [email protected]

TUTORIALS POINT Simply Easy Learning

Table of Content C++ Tutorial ............................................................................. 2 Audience .................................................................................. 2 Prerequisites ............................................................................ 2 Copyright & Disclaimer Notice.................................................. 2 Overview ................................................................................ 11 Object-Oriented Programming ................................................................. 11 Standard Libraries .................................................................................... 11 The ANSI Standard .................................................................................. 12 Learning C++ ........................................................................................... 12 Use of C++ ............................................................................................... 12

Environment Setup ................................................................ 13 Text Editor: ............................................................................................... 13 C++ Compiler: .......................................................................................... 13 Installing GNU C/C++ Compiler: .............................................................. 13 Unix/Linux Installation: ............................................................................. 13 Mac OS X Installation: .............................................................................. 14 Windows Installation:................................................................................ 14

C++ Basic Syntax .................................................................. 15 C++ Program Structure: ........................................................................... 15 Compile & Execute C++ Program: ........................................................... 16 Semicolons & Blocks in C++: ................................................................... 16 C++ Identifiers: ......................................................................................... 17 C++ Keywords: ......................................................................................... 17 Trigraphs: ................................................................................................. 18 Whitespace in C++: .................................................................................. 18

Comments ............................................................................. 19 Data Types ............................................................................ 20 Primitive Built-in Types: ............................................................................ 20 typedef Declarations:................................................................................ 22 Enumerated Types: .................................................................................. 22

Variable Types ....................................................................... 23 Variable Declaration in C++: .................................................................... 23 Variable Initialization in C++: ...................... Error! Bookmark not defined. Lvalues and Rvalues: ............................................................................... 25

Variable Scope....................................................................... 26 Local Variables:........................................................................................ 26 Global Variables: ...................................................................................... 27 TUTORIALS POINT Simply Easy Learning

Initializing Local and Global Variables: ..................................................... 27

Constants/Literals .................................................................. 29 Integer literals:.......................................................................................... 29 Floating-point literals: ............................................................................... 29 Boolean literals:........................................................................................ 30 Character literals: ..................................................................................... 30 String literals: ........................................................................................... 31 Defining Constants: .................................................................................. 31 The #define Preprocessor: ....................................................................... 31 The const Keyword: ................................................................................. 32

Modifier Types ....................................................................... 33 Type Qualifiers in C++.............................................................................. 34

Storage Classes..................................................................... 35 The auto Storage Class............................................................................ 35 The register Storage Class....................................................................... 35 The static Storage Class .......................................................................... 36 The extern Storage Class......................................................................... 36 The mutable Storage Class ...................................................................... 37

Operators ............................................................................... 38 Arithmetic Operators: ............................................................................... 38 Relational Operators: ............................................................................... 40 Logical Operators: .................................................................................... 42 Bitwise Operators: .................................................................................... 43 Assignment Operators:............................................................................. 45 Misc Operators ......................................................................................... 47 sizeof operator ......................................................................................... 47 Conditional operator ................................................................................. 48 Comma Operator ..................................................................................... 49 Member Operator ..................................................................................... 49 The (.) dot operator: ................................................................................. 49 The (->) arrow operator: ........................................................................... 50 Casting Operator ...................................................................................... 50 Pointer Operator & and Pointer Operator *............................................... 51 The Address of Operator &: ..................................................................... 51 The Indirection Operator *: ....................................................................... 51 Operators Precedence in C++: ................................................................. 52

C++ Loop Types .................................................................... 54 while loop ................................................................................................. 55 Syntax: ..................................................................................................... 55 TUTORIALS POINT Simply Easy Learning

Flow Diagram: .......................................................................................... 56 Example: .................................................................................................. 56 for loop ..................................................................................................... 57 Syntax: ..................................................................................................... 57 Flow Diagram: .......................................................................................... 58 Example: .................................................................................................. 58 do…while loop.......................................................................................... 59 Syntax: ..................................................................................................... 59 Flow Diagram: .......................................................................................... 59 Example: .................................................................................................. 60 nested loops ............................................................................................. 60 Syntax: ..................................................................................................... 60 Example: .................................................................................................. 61 Loop Control Statements:......................................................................... 62 break statement ....................................................................................... 62 Syntax: ..................................................................................................... 62 Flow Diagram: .......................................................................................... 63 Example: .................................................................................................. 63 continue statement ................................................................................... 64 Syntax: ..................................................................................................... 64 Flow Diagram: .......................................................................................... 64 Example: .................................................................................................. 64 goto statement ......................................................................................... 65 Syntax: ..................................................................................................... 65 Flow Diagram: .......................................................................................... 66 Example: .................................................................................................. 66 The Infinite Loop: ..................................................................................... 67

Decision Making..................................................................... 68 if statement............................................................................................... 69 Syntax: ..................................................................................................... 69 Flow Diagram: .......................................................................................... 69 Example: .................................................................................................. 69 if…else statement .................................................................................... 70 Syntax: ..................................................................................................... 70 Flow Diagram: .......................................................................................... 71 Example: .................................................................................................. 71 The if...else if...else Statement: ................................................................ 72 Syntax: ..................................................................................................... 72 Example: .................................................................................................. 72 TUTORIALS POINT Simply Easy Learning

switch statement ...................................................................................... 73 Syntax: ..................................................................................................... 73 Flow Diagram: .......................................................................................... 74 Example: .................................................................................................. 74 nested if statements ................................................................................. 75 Syntax: ..................................................................................................... 75 Example: .................................................................................................. 75 nested switch statements ......................................................................... 76 Syntax: ..................................................................................................... 76 Example: .................................................................................................. 76 The ? : Operator: ...................................................................................... 77

Functions ............................................................................... 78 Defining a Function: ................................................................................. 78 Example: .................................................................................................. 79 Function Declarations:.............................................................................. 79 Calling a Function: ................................................................................... 79 Function Arguments: ................................................................................ 80 Default Values for Parameters: ................................................................ 84

Numbers ................................................................................ 85 Defining Numbers in C++: ........................................................................ 85 Math Operations in C++: .......................................................................... 86 Random Numbers in C++: ........................................................................ 87

Arrays .................................................................................... 89 Declaring Arrays: ...................................................................................... 89 Initializing Arrays: ..................................................................................... 89 Accessing Array Elements: ...................................................................... 90 C++ Arrays in Detail: ................................................................................ 91 Two-Dimensional Arrays: ......................................................................... 91 Initializing Two-Dimensional Arrays: ........................................................ 92 Accessing Two-Dimensional Array Elements: .......................................... 92

Strings.................................................................................... 98 The C-Style Character String: .................................................................. 98 The String Class in C++: ........................................................................ 100

Pointers................................................................................ 101 What Are Pointers? ................................................................................ 101 Using Pointers in C++: ........................................................................... 102 C++ Pointers in Detail: ........................................................................... 102 Incrementing a Pointer: .......................................................................... 104 Decrementing a Pointer:......................................................................... 105 TUTORIALS POINT Simply Easy Learning

Pointer Comparisons .............................................................................. 105

References .......................................................................... 113 C++ References vs Pointers: ................................................................. 113 Creating References in C++: .................................................................. 113

Date and Time ..................................................................... 117 Current date and time:............................................................................ 118 Format time using struct tm: ................................................................... 118

Basic Input/Output ............................................................... 120 I/O Library Header Files: ........................................................................ 120 The standard output stream (cout): ........................................................ 120 The standard input stream (cin): ............................................................ 121 The standard error stream (cerr): ........................................................... 121 The standard log stream (clog): ............................................................. 122

Data Structures .................................................................... 123 Defining a Structure: .............................................................................. 123 Accessing Structure Members: .............................................................. 123 Structures as Function Arguments: ........................................................ 125 Pointers to Structures: ............................................................................ 126 The typedef Keyword ............................................................................. 127

Classes and Objects ............................................................ 128 C++ Class Definitions: ............................................................................ 128 Define C++ Objects: ............................................................................... 128 Accessing the Data Members: ............................................................... 129

Classes & Objects in Detail: ................................................. 129 The public members: .............................................................................. 134 The private members: ............................................................................ 135 The protected members: ........................................................................ 136 The Class Constructor:........................................................................... 137 Parameterized Constructor: ................................................................... 138 Using Initialization Lists to Initialize Fields:............................................. 139 The Class Destructor:............................................................................. 139 Static Function Members:....................................................................... 148

Inheritance ........................................................................... 150 Base & Derived Classes:........................................................................ 150 Access Control and Inheritance: ............................................................ 151 Type of Inheritance: ............................................................................... 151 Multiple Inheritances: ............................................................................. 152

Overloading ......................................................................... 154 Function overloading in C++: ................................................................. 154 TUTORIALS POINT Simply Easy Learning

Operators overloading in C++: ............................................................... 155 Overloadable/Non-overloadableOperators: ............................................ 157 Operator Overloading Examples: ........................................................... 157

Polymorphism ...................................................................... 170 Virtual Function: ..................................................................................... 172 Pure Virtual Functions: ........................................................................... 172

Data Abstraction .................................................................. 173 Access Labels Enforce Abstraction: ....................................................... 174 Benefits of Data Abstraction: .................................................................. 174 Data Abstraction Example: ..................................................................... 174 Designing Strategy: ................................................................................ 175

Data Encapsulation .............................................................. 176 Data Encapsulation Example: ................................................................ 177 Designing Strategy: ................................................................................ 177

Interfaces ............................................................................. 178 Abstract Class Example: ........................................................................ 178 Designing Strategy: ................................................................................ 180

Files and Streams ................................................................ 181 Opening a File: ....................................................................................... 181 Closing a File ......................................................................................... 182 Writing to a File: ..................................................................................... 182 Reading from a File: ............................................................................... 182 Read & Write Example: .......................................................................... 182 File Position Pointers:............................................................................. 183

Exception Handling .............................................................. 185 Throwing Exceptions: ............................................................................. 185 Catching Exceptions:.............................................................................. 186 C++ Standard Exceptions: ..................................................................... 187 Define New Exceptions: ......................................................................... 188

Dynamic Memory ................................................................. 189 The new and delete operators:............................................................... 189 Dynamic Memory Allocation for Arrays: ................................................. 190 Dynamic Memory Allocation for Objects:................................................ 190

Namespaces ........................................................................ 192 Defining a Namespace: .......................................................................... 192 The using directive: ................................................................................ 193 Discontiguous Namespaces: .................................................................. 194 Nested Namespaces: ............................................................................. 194

Templates ............................................................................ 196 TUTORIALS POINT Simply Easy Learning

Function Template: ................................................................................ 196 Class Template: ..................................................................................... 197

Preprocessor ....................................................................... 199 The #define Preprocessor: ..................................................................... 199 Function-Like Macros: ............................................................................ 200 Conditional Compilation: ........................................................................ 200 The # and ## Operators: ........................................................................ 201 Predefined C++ Macros: ........................................................................ 202

Signal Handling .................................................................... 204 The signal() function: .............................................................................. 204 The raise() function: ............................................................................... 205

Multithreading ...................................................................... 207 Creating Threads: .................................................................................. 207 Terminating Threads: ............................................................................. 208 Example: ................................................................................................ 208 Passing Arguments to Threads: ............................................................. 209 Joining and Detaching Threads: ............................................................. 210

Web Programming ............................................................... 212 What is CGI ? ......................................................................................... 212 Web Browsing ........................................................................................ 212 CGI Architecture Diagram ...................................................................... 213 Web Server Configuration ...................................................................... 213 First CGI Program .................................................................................. 213 Hello World! This is my first CGI program .............................................. 214 HTTP Header ......................................................................................... 214 CGI Environment Variables .................................................................... 214 C++ CGI Library ..................................................................................... 216 GET and POST Methods ....................................................................... 216 Passing Information using GET method: ................................................ 216 Simple URL Example : Get Method ....................................................... 217 Simple FORM Example: GET Method.................................................... 218 Passing Information using POST method: ............................................. 218 Passing Checkbox Data to CGI Program ............................................... 219 Passing Radio Button Data to CGI Program .......................................... 220 Passing Text Area Data to CGI Program ............................................... 221 Passing Drop Down Box Data to CGI Program ...................................... 222 Using Cookies in CGI ............................................................................. 223 How It Works .......................................................................................... 223 Setting up Cookies ................................................................................. 223 TUTORIALS POINT Simply Easy Learning

Retrieving Cookies ................................................................................. 224 File Upload Example: ............................................................................. 225

STL Tutorial ......................................................................... 227 Standard Library .................................................................. 229 The Standard Function Library: .............................................................. 229 The Object Oriented Class Library: ........................................................ 229

TUTORIALS POINT Simply Easy Learning

1

CHAPTER

Overview

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.

TUTORIALS POINT Simply Easy Learning

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. 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 to do when learning C++ is to focus on concepts and not get lost in language technical details. 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 softwares that rely on direct manipulation of hardware under realtime 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++.

TUTORIALS POINT Simply Easy Learning

2

CHAPTER

Environment Setup

B

efore you start doing programming using C++, you need the following two softwares available on your

computer.

Text Editor: This will be used to type your program. Examples of few editors include Windows Notepad, OS Edit command, Brief, Epsilon, EMACS, and vim or vi. Name and version of text editor can vary on different operating systems. For example, Notepad will be used on Windows and vim or vi can be used on windows as well as Linux, or UNIX. The files you create with your editor are called source files, and for C++ they typically are named with the extension .cpp, .cp, or .c. Before starting your programming, make sure you have one text editor in place and you have enough experience to type your C++ program.

C++ Compiler: This is actual C++ compiler, which will be used to compile your source code into final executable program. Most C++ compilers don't care what extension you give your source code, but if you don't specify otherwise, many will use .cpp by default Most frequently used and free available compiler is GNU C/C++ compiler, otherwise you can have compilers either from HP or Solaris if you have respective Operating Systems.

Installing GNU C/C++ Compiler: UNIX/Linux Installation: If you are using Linux or UNIX, then check whether GCC is installed on your system by entering the following command from the command line: $ g++-v

TUTORIALS POINT Simply Easy Learning

If you have installed GCC, then it should print a message such as the following: Using built-in specs. Target: i386-redhat-linux Configuredwith:../configure --prefix=/usr ....... Thread model: posix gcc version 4.1.220080704(RedHat4.1.2-46) If GCC is not installed, then you will have to install it yourself using the detailed instructions available at http://gcc.gnu.org/install/

Mac OS X Installation: If you use Mac OS X, the easiest way to obtain GCC is to download the Xcode development environment from Apple's web site and follow the simple installation instructions. Xcode is currently available at developer.apple.com/technologies/tools/.

Windows Installation: To install GCC at Windows, you need to install MinGW. To install MinGW, go to the MinGW homepage, www.mingw.org, and follow the link to the MinGW download page. Download the latest version of the MinGW installation program which should be named MinGW-.exe. While installing MinWG, at a minimum, you must install gcc-core, gcc-g++, binutils, and the MinGW runtime, but you may wish to install more. Add the bin subdirectory of your MinGW installation to your PATH environment variable so that you can specify these tools on the command line by their simple names. When the installation is complete, you will be able to run gcc, g++, ar, ranlib, dlltool, and several other GNU tools from the Windows command line.

TUTORIALS POINT Simply Easy Learning

3

CHAPTER

C++ Basic Syntax

W

hen we consider a C++ program, it can be defined as a collection of objects that communicate via

invoking each other's methods. Let us now briefly look into what do class, object, methods and instant variables mean.

   

Object - Objects have states and behaviors. Example: A dog has states - color, name, breed as well as behaviors - wagging, barking, eating. An object is an instance of a class. Class - A class can be defined as a template/blueprint that describes the behaviors/states that object of its type support. Methods - A method is basically a behavior. A class can contain many methods. It is in methods where the logics are written, data is manipulated and all the actions are executed. Instant Variables - Each object has its unique set of instant variables. An object's state is created by the values assigned to these instant variables.

C++ Program Structure: Let us look at a simple code that would print the words Hello World. #include usingnamespace std; // main() is where program execution begins. int main() { cout
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF