1 introduction to c++ noppadon kamolvilassatian department of computer engineering prince of songkla...

23
1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engine ering Prince of Songkla University

Upload: silvester-walters

Post on 30-Dec-2015

222 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

1

Introduction to C++

Noppadon Kamolvilassatian

Department of Computer Engineering

Prince of Songkla University

Page 2: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

2

Contents

1. Introduction 2. C++ Single-Line Comments 3. C++ Stream Input/Output 4. Declarations in C++ 5. Creating New Data Types in C++ 6. Reference Parameters 7. Const Qualifier 8. Default Arguments 9. Function Overloading

Page 3: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

3

1. Introduction

C++ improves on many of C’s features. C++ provides object-oriented programming (OOP

). C++ is a superset to C. No ANSI standard exists yet (in 1994).

Page 4: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

4

2. C++ Single-Line Comments

In C,

/* This is a single-line comment. */ In C++,

// This is a single-line comment.

Page 5: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

5

3. C++ Stream Input/Output

In C,

printf(“Enter new tag: “);scanf(“%d”, &tag);printf(“The new tag is: %d\n”, tag);

In C++,

cout << “Enter new tag: “;cin >> tag;cout << “The new tag is : “ << tag << ‘\n’;

Page 6: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

6

3.1 An Example

// Simple stream input/output

#include <iostream.h>

main()

{

cout << "Enter your age: ";

int myAge;

cin >> myAge;

cout << "Enter your friend's age: ";

int friendsAge;

cin >> friendsAge;

Page 7: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

7

if (myAge > friendsAge)

cout << "You are older.\n";

else

if (myAge < friendsAge)

cout << "You are younger.\n";

else

cout << "You and your friend are the same age.\n";

return 0;

}

Page 8: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

8

4. Declarations in C++

In C++, declarations can be placed anywhere (except in the condition of a while, do/while, for or if structure.)

An examplecout << “Enter two integers: “;

int x, y;

cin >> x >> y;

cout << “The sum of “ << x << “ and “ << y

<< “ is “ << x + y << ‘\n’;

Page 9: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

9

Another example

for (int i = 0; i <= 5; i++)

cout << i << ‘\n’;

Page 10: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

10

5. Creating New Data Types in C++

struct Name {

char first[10];

char last[10];

}; In C,struct Name stdname; In C++,Name stdname; The same is true for enums and unions

Page 11: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

11

6. Reference Parameters

In C, all function calls are call by value. – Call be reference is simulated using pointers

Reference parameters allows function arguments to be changed without using return or pointers.

Page 12: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

12

6.1 Comparing Call by Value, Call by Reference with Pointers and Call by Reference with References

#include <iostream.h>

int sqrByValue(int);void sqrByPointer(int *);void sqrByRef(int &);

main(){ int x = 2, y = 3, z = 4;

cout << "x = " << x << " before sqrByVal\n" << "Value returned by sqrByVal: " << sqrByVal(x) << "\nx = " << x << " after sqrByVal\n\n";

Page 13: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

13

cout << "y = " << y << " before sqrByPointer\n"; sqrByPointer(&y); cout << "y = " << y << " after sqrByPointer\n\n";

cout << "z = " << z << " before sqrByRef\n"; sqrByRef(z); cout << "z = " << z << " after sqrByRef\n";

return 0;}

Page 14: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

14

int sqrByValue(int a){ return a *= a;

// caller's argument not modified}

void sqrByPointer(int *bPtr){ *bPtr *= *bPtr;

// caller's argument modified}

void sqrByRef(int &cRef){ cRef *= cRef;

// caller's argument modified}

Page 15: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

15

Output

$ g++ -Wall -o square square.cc

$ square

x = 2 before sqrByValue

Value returned by sqrByValue: 4

x = 2 after sqrByValue

y = 3 before sqrByPointer

y = 9 after sqrByPointer

z = 4 before sqrByRef

z = 16 after sqrByRef

Page 16: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

16

7. The Const Qualifier

Used to declare “constant variables” (instead of #define)const float PI = 3.14156;

The const variables must be initialized when declared.

Page 17: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

17

8. Default Arguments

When a default argument is omitted in a function call, the default value of that argument is automatically passed in the call.

Default arguments must be the rightmost (trailing) arguments.

Page 18: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

18

8.1 An Example

// Using default arguments

#include <iostream.h>

// Calculate the volume of a box

int boxVolume(int length = 1, int width = 1,

int height = 1)

{ return length * width * height; }

Page 19: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

19

main()

{

cout << "The default box volume is: "

<< boxVolume()

<< "\n\nThe volume of a box with length 10,\n"

<< "width 1 and height 1 is: "

<< boxVolume(10)

<< "\n\nThe volume of a box with length 10,\n"

<< "width 5 and height 1 is: "

<< boxVolume(10, 5)

<< "\n\nThe volume of a box with length 10,\n"

<< "width 5 and height 2 is: "

<< boxVolume(10, 5, 2)

<< '\n';

return 0;

}

Page 20: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

20

Output

$ g++ -Wall -o volume volume.cc

$ volume

The default box volume is: 1

The volume of a box with length 10,

width 1 and height 1 is: 10

The volume of a box with length 10,

width 5 and height 1 is: 50

The volume of a box with length 10,

width 5 and height 2 is: 100

Page 21: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

21

9. Function Overloading

In C++, several functions of the same name can be defined as long as these function name different sets of parameters (different types or different number of parameters).

Page 22: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

22

9.1 An Example

// Using overloaded functions#include <iostream.h>

int square(int x) { return x * x; }

double square(double y) { return y * y; }

main(){ cout << "The square of integer 7 is " << square(7) << "\nThe square of double 7.5 is " << square(7.5) << '\n'; return 0;}

Page 23: 1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University

23

Output

$ g++ -Wall -o overload overload.cc

$ overload

The square of integer 7 is 49

The square of double 7.5 is 56.25