1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Learn c++ programming language by tutorials point (i) pvt ltd

322 43 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 322
Dung lượng 2,42 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Following table lists down seven basic C++ data types: Several of the basic types can be modified using one or more of these type modifiers:... 14 The following table shows the variable

Trang 2

i

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 tutorial adopts a simple and practical approach to describe the concepts of

C++

Audience

This tutorial has been prepared for the beginners to help them understand the

basic to advanced concepts related to C++

Prerequisites

Before you start practicing with various types of examples given in this

tutorial,we are making an assumption that you are already aware of the basics

of computer program and computer programming language

Copyright & Disclaimer

All the content and graphics published in this e-book are the property of

Tutorials Point (I) Pvt Ltd The user of this e-book is prohibited to reuse, retain,

copy, distribute or republish any contents or a part of contents of this e-book in

any manner without written consent of the publisher

We strive to update the contents of our website and tutorials as timely and as

precisely as possible, however, the contents may contain inaccuracies or errors

Tutorials Point (I) Pvt Ltd provides no guarantee regarding the accuracy,

timeliness or completeness of our website or its contents including this tutorial

If you discover any errors on our website or in this tutorial, please notify us at

Trang 3

ii

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

Trang 4

iii

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

Trang 5

iv

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

Trang 6

v

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

Trang 7

vi

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

Trang 8

vii

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

Trang 9

viii

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

Trang 10

ix

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

Trang 11

x

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

Trang 12

xi

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

Trang 13

1

C++ is a statically typed, compiled, general-purpose, case-sensitive, free-form programming language that supports procedural, object-oriented, and generic programming

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

Standard C++ consists of three important parts:

types and literals, etc

strings, etc

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 OVERVIEW

Trang 14

2

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++

Trang 15

3

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

website code sections at the top right corner that will take you to the online compiler So just make use of it and enjoy your learning

Local Environment Setup

If you are still willing to set up your environment for C++, you need to have the following two softwares on your computer

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

A text editor should be in place to start your C++ programming

2 ENVIORNMENT SETUP

Trang 16

4

C++ Compiler:

This is an 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 to 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 the

respective Operating Systems

Installing GNU C/C++ Compiler:

UNIX/Linux Installation:

system by entering the following command from the command line:

$ g++ -v

If you have installed GCC, then it should print a message such as the following:

Using built-in specs

Target: i386-redhat-linux

Configured with: /configure prefix=/usr

Thread model: posix

gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)

If GCC is not installed, then you will have to install it yourself using the detailed

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 website and follow the simple installation

instructions

Windows Installation:

To install GCC at Windows you need to install MinGW To install MinGW, go to

download page Download the latest version of the MinGW installation program

which should be named MinGW-<version>.exe

While installing MinGW, at a minimum, you must install gcc-core, gcc-g++,

binutils, and the MinGW runtime, but you may wish to install more

Trang 17

5

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

Trang 18

6

When 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 a class, object, methods, and instant variables mean

color, name, breed as well as behaviors - wagging, barking, and eating

An object is an instance of a class

behaviors/states that object of its type support

methods It is in methods where the logics are written, data is

manipulated and all the actions are executed

An object's state is created by the values assigned to these instant

Let us look at the various parts of the above program:

1 The C++ language defines several headers, which contain information

that is either necessary or useful to your program For this program, the

namespace Namespaces are a relatively recent addition to C++

Trang 19

7

single-line comment available in C++ Single-line comments begin with // and stop at the end of the line

message "This is my first C++ program" to be displayed on the screen

the value 0 to the calling process

Compile & Execute C++ Program:

Let's look at how to save the file, compile and run the program Please follow the steps given below:

1 Open a text editor and add the code as above

2 Save the file as: hello.cpp

3 Open a command prompt and go to the directory where you saved the file

4 Type 'g++ hello.cpp' and press enter to compile your code If there are no errors in your code the command prompt will take you to the next line and would generate a.out executable file

5 Now, type 'a.out' to run your program

6 You will be able to see ' Hello World ' printed on the window

You can compile C/C++ programs using makefile For more details, you can

Semicolons & Blocks in C++

In C++, the semicolon is a statement terminator That is, each individual statement must be ended with a semicolon It indicates the end of one logical entity

For example, following are three different statements:

x = y;

y = y+1;

Trang 20

8

add(x, y);

A block is a set of logically connected statements that are surrounded by

opening and closing braces For example:

{

cout << "Hello World"; // prints Hello World

return 0;

}

C++ does not recognize the end of the line as a terminator For this reason, it

does not matter where you put a statement in a line For example:

A C++ identifier is a name used to identify a variable, function, class, module, or

any other user-defined item An identifier starts with a letter A to Z or a to z or

an underscore (_) followed by zero or more letters, underscores, and digits (0 to

9)

C++ does not allow punctuation characters such as @, $, and % within

Here are some examples of acceptable identifiers:

mohd zara abc move_name a_123

myname50 _temp j a23b9 retVal

C++ Keywords

The following list shows the reserved words in C++ These reserved words may

not be used as constant or variable or any other identifier names

Trang 21

9

Trigraphs

A few characters have an alternative representation, called a trigraph sequence

A trigraph is a three-character sequence that represents a single character and the sequence always starts with two question marks

Trigraphs are expanded anywhere they appear, including within string literals and character literals, in comments, and in preprocessor directives

Following are most frequently used trigraph sequences:

Trang 22

All the compilers do not support trigraphs and they are not advised to be used

because of their confusing nature

Whitespace in C++

A line containing only whitespace, possibly with a comment, is known as a blank

line, and C++ compiler totally ignores it

Whitespace is the term used in C++ to describe blanks, tabs, newline characters

and comments Whitespace separates one part of a statement from another and

enables the compiler to identify where one element in a statement, such as int,

ends and the next element begins Statement 1:

int age;

In the above statement there must be at least one whitespace character (usually

a space) between int and age for the compiler to be able to distinguish them

Statement 2:

fruit = apples + oranges; // Get the total fruit

In the above statement 2, no whitespace characters are necessary between fruit

and =, or between = and apples, although you are free to include some if you

wish for readability purpose

Trang 23

11

Program comments are explanatory statements that you can include in the C++ code These comments help anyone reading the source code All programming languages allow for some form of comments

C++ supports single-line and multi-line comments All characters available inside any comment are ignored by C++ compiler

C++ comments start with /* and end with */ For example:

/* This is a comment */

/* C++ comments can also

* span multiple lines

When the above code is compiled, it will ignore // prints Hello World and final

executable will produce the following result:

Hello World

Within a /* and */ comment, // characters have no special meaning Within a // comment, /* and */ have no special meaning Thus, you can "nest" one kind of comment within the other kind For example:

/* Comment out printing of Hello World:

4 COMMENTS IN C++

Trang 24

12

cout << "Hello World"; // prints Hello World

*/

Trang 25

Primitive Built-in Types

C++ offers the programmer a rich assortment of built-in as well as user defined data types Following table lists down seven basic C++ data types:

Several of the basic types can be modified using one or more of these type modifiers:

Trang 26

14

The following table shows the variable type, how much memory it takes to store

the value in memory, and what is maximum and minimum value which can be

stored in such type of variables

The size of variables might be different from those shown in the above table,

depending on the compiler and the computer you are using

Trang 27

cout << "Size of char : " << sizeof(char) << endl;

cout << "Size of int : " << sizeof(int) << endl;

cout << "Size of short int : " << sizeof(short int) << endl;

cout << "Size of long int : " << sizeof(long int) << endl;

cout << "Size of float : " << sizeof(float) << endl;

cout << "Size of double : " << sizeof(double) << endl;

cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;

return 0;

}

<< operator is being used to pass multiple values out to the screen We are also

When the above code is compiled and executed, it produces the following result which can vary from machine to machine:

Size of char : 1

Size of int : 4

Size of short int : 2

Size of long int : 4

Size of float : 4

Size of double : 8

Size of wchar_t : 4

typedef Declarations

simple syntax to define a new type using typedef:

typedef type newname;

For example, the following tells the compiler that feet is another name for int:

Trang 28

16

typedef int feet;

Now, the following declaration is perfectly legal and creates an integer variable

called distance:

feet distance;

Enumerated Types

An enumerated type declares an optional type name and a set of zero or more

identifiers that can be used as values of the type Each enumerator is a constant

whose type is the enumeration

form of an enumeration type is:

enum enum-name { list of names } var-list;

Here, the enum-name is the enumeration's type name The list of names is

comma separated

For example, the following code defines an enumeration of colors called colors

and the variable c of type color Finally, c is assigned the value "blue"

enum color { red, green, blue } c;

c = blue;

By default, the value of the first name is 0, the second name has the value 1,

and the third has the value 2, and so on But you can give a name, a specific

enum color { red, green=5, blue };

the one that precedes it

Trang 29

There are following basic types of variable in C++ as explained in last chapter:

type

C++ also allows to define various other types of variables, which we will cover in

structures,andClasses

Following section will cover how to define, declare and use various types of variables

Trang 30

18

type variable_list;

one or more identifier names separated by commas Some valid declarations are

instructs the compiler to create variables named i, j and k of type int

Variables can be initialized (assigned an initial value) in their declaration The

initializer consists of an equal sign followed by a constant expression as follows:

type variable_name = value;

Some examples are:

extern int d = 3, f = 5; // declaration of d and f

int d = 3, f = 5; // definition and initializing d and f

byte z = 22; // definition and initializes z

char x = 'x'; // the variable x has the value 'x'

For definition without an initializer: variables with static storage duration are

implicitly initialized with NULL (all bytes have the value 0); the initial value of all

other variables is undefined

Variable Declaration in C++

A variable declaration provides assurance to the compiler that there is one

variable existing with the given type and name so that compiler proceed for

further compilation without needing complete detail about the variable A

variable declaration has its meaning at the time of compilation only, compiler

needs actual variable declaration at the time of linking of the program

A variable declaration is useful when you are using multiple files and you define

your variable in one of the files which will be available at the time of linking of

Though you can declare a variable multiple times in your C++ program, but it

can be defined only once in a file, a function or a block of code

Example:

Trang 32

20

Same concept applies on function declaration where you provide a function

name at the time of its declaration and its actual definition can be given

anywhere else For example:

Lvalues and Rvalues

There are two kinds of expressions in C++:

expression An lvalue may appear as either the left-hand or right-hand

side of an assignment

address in memory An rvalue is an expression that cannot have a value

assigned to it which means an rvalue may appear on the right- but not

left-hand side of an assignment

Variables are lvalues and so may appear on the left-hand side of an assignment

Numeric literals are rvalues and so may not be assigned and cannot appear on

the left-hand side Following is a valid statement:

Trang 33

21

A scope is a region of the program and broadly speaking there are three places, where variables can be declared:

We will learn what a function is, and it's parameter in subsequent chapters Here let us explain what local and global variables are

Local Variables

Variables that are declared inside a function or block are local variables They can be used only by statements that are inside that function or block of code Local variables are not known to functions outside their own Following is the example using local variables:

Trang 34

22

Global Variables

Global variables are defined outside of all the functions, usually on top of the

program The global variables will hold their value throughout the life-time of

your program

A global variable can be accessed by any function That is, a global variable is

available for use throughout your entire program after its declaration Following

is the example using global and local variables:

A program can have same name for local and global variables but value of local

variable inside a function will take preference For example:

Trang 35

Initializing Local and Global Variables

When a local variable is defined, it is not initialized by the system, you must initialize it yourself Global variables are initialized automatically by the system when you define them as follows:

Trang 36

24

Constants refer to fixed values that the program may not alter and they are

Constants can be of any of the basic data types and can be divided into Integer

Numerals, Floating-Point Numerals, Characters, Strings and Boolean Values

Again, constants are treated just like regular variables except that their values

cannot be modified after their definition

Integer Literals

An integer literal can be a decimal, octal, or hexadecimal constant A prefix

specifies the base or radix: 0x or 0X for hexadecimal, 0 for octal, and nothing for

decimal

An integer literal can also have a suffix that is a combination of U and L, for

unsigned and long, respectively The suffix can be uppercase or lowercase and

can be in any order

Here are some examples of integer literals:

212 // Legal

215u // Legal

0xFeeL // Legal

078 // Illegal: 8 is not an octal digit

032UU // Illegal: cannot repeat a suffix

Following are other examples of various types of Integer literals:

A floating-point literal has an integer part, a decimal point, a fractional part, and

an exponent part You can represent floating point literals either in decimal form

or exponential form

Trang 37

25

While representing using decimal form, you must include the decimal point, the exponent, or both and while representing using exponential form, you must include the integer part, the fractional part, or both The signed exponent is introduced by e or E

Here are some examples of floating-point literals:

3.14159 // Legal

314159E-5L // Legal

510E // Illegal: incomplete exponent

210f // Illegal: no decimal or exponent

.e55 // Illegal: missing integer or fraction

Boolean Literals

There are two Boolean literals and they are part of standard C++ keywords:

You should not consider the value of true equal to 1 and value of false equal to

0

Character Literals

Character literals are enclosed in single quotes If the literal begins with L (uppercase only), it is a wide character literal (e.g., L'x') and should be stored

inwchar_ttype of variable Otherwise, it is a narrow character literal (e.g., 'x')

A character literal can be a plain character (e.g., 'x'), an escape sequence (e.g., '\t'), or a universal character (e.g., '\u02C0')

There are certain characters in C++ when they are preceded by a backslash they will have special meaning and they are used to represent like newline (\n)

or tab (\t) Here, you have a list of some of such escape sequence codes:

Escape sequence Meaning

Trang 38

Following is the example to show a few escape sequence characters:

String literals are enclosed in double quotes A string contains characters that

are similar to character literals: plain characters, escape sequences, and

universal characters

Trang 39

There are two simple ways in C++ to define constants:

The #define Preprocessor

Following is the form to use #define preprocessor to define a constant:

#define identifier value

Following example explains it in detail:

Trang 40

The const Keyword

const type variable = value;

Following example explains it in detail:

#include <iostream>

using namespace std;

int main()

{

const int LENGTH = 10;

const int WIDTH = 5;

const char NEWLINE = '\n';

Ngày đăng: 16/12/2019, 15:46