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

Slides:



Advertisements
Similar presentations
Kernighan/Ritchie: Kelley/Pohl:
Advertisements

Informática II Prof. Dr. Gustavo Patiño MJ
Copyright © 2012 Pearson Education, Inc. Chapter 9: Pointers.
// Functions that take no arguments #include using namespace std; void function1(); void function2( void ); int main() { function1(); function2(); return.
Pointers. Addresses in Memory When a variable is declared, enough memory to hold a value of that type is allocated for it at an unused memory location.
CPSC230 Computers & Programming I Lecture Notes 20 Function 5 Dr. Ming Zhang.
 2006 Pearson Education, Inc. All rights reserved Pointers.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 15 - C++ As A "Better C" Outline 15.1Introduction.
Pointers 1 Pointers Pointers  In chapter three we looked at passing parameters to functions using call by value, and using call by reference, using reference.
1 Pointers, Dynamic Data, and Reference Types Review on Pointers Reference Variables Dynamic Memory Allocation –The new operator –The delete operator –Dynamic.
Functions. 3Introduction Divide and conquer –Construct a program from smaller pieces or components –Each piece more manageable than the original program.
1 Procedural Concept The main program coordinates calls to procedures and hands over appropriate data as parameters.
1 CISC181 Introduction to Computer Science Dr. McCoy Lecture 19 Clicker Questions November 3, 2009.
Lesson 9 Pointers CS 1 Lesson 9 -- John Cole1. Pointers in Wonderland The name of the song is called ‘Haddock’s Eyes’.” “Oh, that’s the name of the song,
C++ Pointers Copies from SEE C++ programming course and from Starting Out with C++: Early Objects, 8/E by Tony Gaddis, Judy Walters and Godfrey Muganda.
1 Introduction to C++ Noppadon Kamolvilassatian Department of Computer Engineering Prince of Songkla University.
Introduction to C++ Systems Programming. Systems Programming: Introduction to C++ 2 Systems Programming: 2 Introduction to C++  Syntax differences between.
7. Pointers, Dynamic Memory 20 th September IIT Kanpur 1C Course, Programming club, Fall 2008.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 9: Pointers.
C++ Tutorial Hany Samuel and Douglas Wilhelm Harder Department of Electrical and Computer Engineering University of Waterloo Copyright © 2006 by Douglas.
Computer Science and Software Engineering University of Wisconsin - Platteville 2. Pointer Yan Shi CS/SE2630 Lecture Notes.
C++ Data Types Structured array struct union class Address pointer reference Simple IntegralFloating char short int long enum float double long double.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 15 - C++ As A "Better C" Outline 15.1Introduction 15.2C A Simple Program: Adding Two Integers.
Copyright 2005, The Ohio State University 1 Pointers, Dynamic Data, and Reference Types Review on Pointers Reference Variables Dynamic Memory Allocation.
Chapter 7 A Data Types – Structures Structures Structure: C++ construct that allows multiple variables to be grouped together Structure Declaration.
1 Lecture 14 Functions Functions with Empty Parameter Lists Empty parameter lists  void or leave parameter list empty  Indicates function takes.
Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Lucas Bang Lecture 16: Introduction to C++
Review 1 List Data Structure List operations List Implementation Array Linked List.
C++ Programming Lecture 17 Pointers – Part I The Hashemite University Computer Engineering Department (Adapted from the textbook slides)
POINTERS. // Chapter 3 - Program 1 - POINTERS.CPP #include int main() { int *pt_int; float *pt_float; int pig = 7, dog = 27; float x = , y = 32.14;
C++ Programming Lecture 13 Functions – Part V The Hashemite University Computer Engineering Department (Adapted from the textbook slides)
EEL 3801 C++ as an Enhancement of C. EEL 3801 – Lotzi Bölöni Comments  Can be done with // at the start of the commented line.  The end-of-line terminates.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions Outline 3.15Functions with Empty Parameter Lists 3.16Inline Functions 3.17References.
EC-111 Algorithms & Computing Lecture #6 Instructor: Jahan Zeb Department of Computer Engineering (DCE) College of E&ME NUST.
1 2/2/05CS250 Introduction to Computer Science II Pointers.
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions.
 2003 Prentice Hall, Inc. All rights reserved Storage Classes Variables have attributes –Have seen name, type, size, value –Storage class How long.
1 Recall that... char str [ 8 ]; str is the base address of the array. We say str is a pointer because its value is an address. It is a pointer constant.
1 Chapter 15-1 Pointers, Dynamic Data, and Reference Types Dale/Weems.
1  Lecture 12 – Pointer FTMK, UTeM – Sem /2014.
POINTERS IN C Pointer Basics, Pointer Arithmetic, Pointer to arrays and Pointer in functions.
CHAPTER 4 FUNCTIONS Dr. Shady Yehia Elmashad. Outline 1.Introduction 2.Program Components in C++ 3.Math Library Functions 4.Functions 5.Function Definitions.
 2000 Prentice Hall, Inc. All rights reserved Program Components in C++ Function definitions –Only written once –These statements are hidden from.
Prepared by Andrew Jung. Contents A Simple program – C++ C++ Standard Library & Header files Inline Functions References and Reference Parameters Empty.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI N305 Pointers Call-by-Reference.
C++ Programming Lecture 13 Functions – Part V By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
C++ Programming Michael Griffiths Corporate Information and Computing Services The University of Sheffield
Pointers Lecture: 5. Topics 1 Pointers and the Address Operator 2 Pointer Variables 3 The Relationship Between Arrays and Pointers 4 Pointer Arithmetic.
Chapter 15 - C++ As A "Better C"
Chapter 1.2 Introduction to C++ Programming
Pointers and Dynamic Arrays
Dr. Shady Yehia Elmashad
Chapter 1.2 Introduction to C++ Programming
Chapter 9: Pointers.
Introduction to C++ Systems Programming.
Dr. Shady Yehia Elmashad
8 Pointers.
Dynamic Memory Allocation Reference Variables
Dr. Shady Yehia Elmashad
Data Types – Structures
Pointers, Dynamic Data, and Reference Types
Pointers Call-by-Reference CSCI 230
CS150 Introduction to Computer Science 1
Variables have attributes
7. Pointers, Dynamic Memory
Chapter 15 - C++ As A "Better C"
C Programming Lecture-8 Pointers and Memory Management
Pointers, Dynamic Data, and Reference Types
Presentation transcript:

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

2 Contents n 1. Introduction n 2. C++ Single-Line Comments n 3. C++ Stream Input/Output n 4. Declarations in C++ n 5. Creating New Data Types in C++ n 6. Reference Parameters

3 Contents (continued) n 7. Const Qualifier n 8. Default Arguments n 9. Function Overloading n 10. Dynamic Memory Allocation with New and Delete

4 1. Introduction n C++ improves on many of C’s features. n C++ provides object-oriented programming (OOP). n C++ is a superset to C. n No ANSI standard exists yet (in 1994).

5 2. C++ Single-Line Comments n In C, /* This is a single-line comment. */ n In C++, // This is a single-line comment.

6 3. C++ Stream Input/Output n In C, printf(“Enter new tag: “); scanf(“%d”, &tag); printf(“The new tag is: %d\n”, tag); n In C++, cout > tag; cout << “The new tag is : “ << tag << ‘\n’;

7 3.1 An Example // Simple stream input/output #include main() { cout << "Enter your age: "; int myAge; cin >> myAge; cout << "Enter your friend's age: "; int friendsAge; cin >> friendsAge;

8 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; }

9 4. Declarations in C++ In C++, declarations can be placed anywhere (except in the condition of a while, do/while, for or if structure.) n An example cout << “Enter two integers: “; int x, y; cin >> x >> y; cout << “The sum of “ << x << “ and “ << y << “ is “ << x + y << ‘\n’;

10 n Another example for (int i = 0; i <= 5; i++) cout << i << ‘\n’;

11 5. Creating New Data Types in C++ struct Name { char first[10]; char last[10]; }; n In C, struct Name stdname; n In C++, Name stdname; The same is true for enum s and union s

12 6. Reference Parameters n In C, all function calls are call by value. –Call be reference is simulated using pointers n Reference parameters allows function arguments to be changed without using return or pointers.

Comparing Call by Value, Call by Reference with Pointers and Call by Reference with References #include 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";

14 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; }

15 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 }

16 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

17 7. The Const Qualifier n Used to declare “constant variables” (instead of #define) const float PI = ; n The const variables must be initialized when declared.

18 8. Default Arguments n When a default argument is omitted in a function call, the default value of that argument is automatically passed in the call. n Default arguments must be the rightmost (trailing) arguments.

An Example // Using default arguments #include // Calculate the volume of a box int boxVolume(int length = 1, int width = 1, int height = 1) { return length * width * height; }

20 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; }

21 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

22 9. Function Overloading n 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).

An Example // Using overloaded functions #include 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; }

24 Output $ g++ -Wall -o overload overload.cc $ overload The square of integer 7 is 49 The square of double 7.5 is 56.25

Dynamic Memory Allocation with New and Delete In ANSI C, dynamic memory allocation is performed with functions malloc and free. typeName *ptr; //typeName is any type, such as int, float, char etc. ptr = malloc(sizeof(typeName)); n In C++, we use the statement ptr = new typeName; If memory cannot be allocated by new, a null pointer is returned.

26 n To free memory space, in C we use the statement free(ptr); n In C++, we use delete ptr;

27 Using New and Delete with Arrays int *arrayPtr; arrayPtr = new int[100]; Creates array dynamically delete [] arrayPtr; Be sure to use brackets ([]) when deallocating arrays of objects.