Fundamentals of Programming Session 23

Similar documents
Fundamentals of Programming Session 25

Fundamentals of Programming Session 24

A A B U n i v e r s i t y

by Pearson Education, Inc. All Rights Reserved. 2

Fundamentals of Programming Session 4

Cpt S 122 Data Structures. Introduction to C++ Part II

Introduction to C++ Systems Programming

Fundamentals of Programming Session 13

Fundamentals of Programming Session 12

Computer Programming C++ Classes and Objects 6 th Lecture

How to engineer a class to separate its interface from its implementation and encourage reuse.

Fundamentals of Programming Session 8

Introduction to Programming

12/22/11. Java How to Program, 9/e. public must be stored in a file that has the same name as the class and ends with the.java file-name extension.

Fundamentals of Programming Session 20

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Chapter 15 - C++ As A "Better C"

Introduction to Programming

Lecture 7: Classes and Objects CS2301

Object Oriented Design

Fundamentals of Programming Session 15

Object Oriented Design

IT 374 C# and Applications/ IT695 C# Data Structures

Fundamentals of Programming Session 7

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Functions and Recursion

Fundamentals of Programming Session 19

Fundamentals of Programming Session 20

Fundamentals of Programming. Lecture 3: Introduction to C Programming

Chapter 2 Basic Elements of C++

Introduction to Programming

Introduction to C Programming

Lab # 02. Basic Elements of C++ _ Part1

CS2141 Software Development using C/C++ C++ Basics

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)

C++ How to Program, 9/e by Pearson Education, Inc. All Rights Reserved.

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)

CHAPTER 1.2 INTRODUCTION TO C++ PROGRAMMING. Dr. Shady Yehia Elmashad

C Functions. Object created and destroyed within its block auto: default for local variables

Fundamentals of Programming Session 19

Control Statements: Part Pearson Education, Inc. All rights reserved.

Multiple Choice (Questions 1 14) 28 Points Select all correct answers (multiple correct answers are possible)

엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED

Chapter 3 - Functions

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program

Fundamentals of Programming Session 14

Chapter 2: Basic Elements of C++

Introduction to Classes and Objects Pearson Education, Inc. All rights reserved.

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction

Full file at

c) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance.

Introduction to Computer Science I

Chapter 2, Part I Introduction to C Programming

Introduction to Programming session 24

Fundamentals of Programming Session 24

(5-1) Object-Oriented Programming (OOP) and C++ Instructor - Andrew S. O Fallon CptS 122 (February 4, 2019) Washington State University

Getting started with C++ (Part 2)

Introduction to Classes and Objects Pearson Education, Inc. All rights reserved.

Functions and Recursion

by Pearson Education, Inc. All Rights Reserved. 2

6.5 Function Prototypes and Argument Coercion

Objectives. In this chapter, you will:

3. Except for strings, double quotes, identifiers, and keywords, C++ ignores all white space.

Computer Programming : C++

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

C++ Basics. Data Processing Course, I. Hrivnacova, IPN Orsay

C++ Programming. Arrays and Vectors. Chapter 6. Objectives. Chiou. This chapter introduces the important topic of data structures collections

Fundamental of Programming (C)

C++ Basics. Lecture 2 COP 3014 Spring January 8, 2018

Fundamentals of Programming Session 9

CE221 Programming in C++ Part 1 Introduction

KOM3191 Object Oriented Programming Dr Muharrem Mercimek ARRAYS ~ VECTORS. KOM3191 Object-Oriented Computer Programming

Introduction to C++ Programming Pearson Education, Inc. All rights reserved.

A First Program - Greeting.cpp

AL GHURAIR UNIVERSITY College of Computing. Objectives: Examples: if Single-Selection Statement CSC 209 JAVA I. week 3- Control Statements: Part I

Lecture 2 Tao Wang 1

Introduction to Classes and Objects

Welcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 1/9/ Review. Here s a simple C++ program:

Lecture 7. Log into Linux New documents posted to course webpage

Welcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 8/19/ Review. Here s a simple C++ program:

Outline. Why do we write functions? Introduction to Functions. How do we write functions? Using Functions. Introduction to Functions March 21, 2006

GE U111 Engineering Problem Solving & Computation Lecture 6 February 2, 2004

Multiple Choice (Questions 1 14) 28 Points Select all correct answers (multiple correct answers are possible)

Functions and an Introduction to Recursion Pearson Education, Inc. All rights reserved.

ADARSH VIDYA KENDRA NAGERCOIL COMPUTER SCIENCE. Grade: IX C++ PROGRAMMING. Department of Computer Science 1

Programming - 1. Computer Science Department 011COMP-3 لغة البرمجة 1 لطالب كلية الحاسب اآللي ونظم المعلومات 011 عال- 3

C++ PROGRAMMING. For Industrial And Electrical Engineering Instructor: Ruba A. Salamh

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York

Fundamentals of Programming CS-110. Lecture 2

CS242 COMPUTER PROGRAMMING

Discussion 1H Notes (Week 3, April 14) TA: Brian Choi Section Webpage:

Computer Science II Lecture 1 Introduction and Background

CSc Introduction to Computing

Programming for Engineers Introduction to C

COMP322 - Introduction to C++

Full file at C How to Program, 6/e Multiple Choice Test Bank

C: How to Program. Week /Mar/05

BITG 1233: Introduction to C++

Lecture 18 Tao Wang 1

Transcription:

Fundamentals of Programming Session 23 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2013 These slides have been created using Deitel s slides Sharif University of Technology

Outlines C++ Inline Functions References and Reference Parameters Default Arguments Classes and Objects Defining a Member Function with a Parameter Data Members, set Functions and get Functions 2

C++ C++ improves on many of C s features and provides object-oriented-programming (OOP) capabilities that increase software productivity, quality and reusability. This section revisits the addition program of Fig. 2.8 and illustrates several important features of the C++ language as well as some differences between C and C++. C file names have the.c (lowercase) extension. C++ file names can have one of several extensions, such as.cpp,.cxx or.c (uppercase). 3

Header Files 4 The C++ Standard Library is divided into many portions, each with its own header file. The header files contain the function prototypes for the related functions that form each portion of the library. The header files also contain definitions of various class types and functions, as well as constants needed by those functions. Figure 15.2 lists common C++ Standard Library header files.

5 Header Files

6 C++

Inline Functions 7 Implementing a program as a set of functions is good from a software engineering standpoint, but function calls involve execution-time overhead. C++ provides inline functions to help reduce function call overhead especially for small functions. The trade-off is that multiple copies of the function code are inserted in the program (often making the program larger) rather than there being a single copy of the function to which control is passed each time the function is called. The compiler can ignore the inline- qualifier and typically does so for all but the smallest functions.

8 Inline Functions

9 Inline Functions

Inline Functions Lines 4 6 are using statements that help us eliminate the need to repeat the std:: prefix. From this point forward, each C++ example contains one or more using statements. In place of lines 4 6, many programmers prefer to use using namespace std; C++ also provides type bool for representing boolean (true/false) values. The two possible values of a bool are the keywords true and false. 10

References and Reference Parameters 11 Two ways to pass arguments to functions in many programming languages are pass-by-value and pass-byreference. This section introduces reference parameters the first of two means that C++ provides for performing pass-byreference. A reference parameter is an alias for its corresponding argument in a function call. For example, the following declaration in a function header int &count when read from right to left is pronounced count is a reference to an int.

References and Reference Parameters In the function call, simply mention the variable by name to pass it by reference. Then, mentioning the variable by its parameter name in the body of the called function actually refers to the original variable in the calling function, and the original variable can be modified directly by the called function. As always, the function prototype and header must agree. Figure 15.5 compares pass-by-value and pass-by-reference with reference parameters. 12

13 References and Reference Parameters

14 References and Reference Parameters

References and Reference Parameters References can also be used as aliases for other variables within a function (although they typically are used with functions as shown in Fig. 15.5). For example, the code int count = 1; // declare integer variable count int &cref = count; // create cref as an alias for count cref++; // increment count (using its alias cref) increments variable count by using its alias cref. 15 Reference variables must be initialized in their declarations, as we show in line 9 of both Fig. 15.6 and Fig. 15.7, and cannot be reassigned as aliases to other variables.

16 References and Reference Parameters

17 References and Reference Parameters

References and Reference Parameters Returning references from functions can be dangerous. When returning a reference to a variable declared in the called function, the variable should be declared static within that function. Otherwise, the reference refers to an automatic variable that is discarded when the function terminates; such a variable is undefined and the program s behavior is unpredictable. References to undefined variables are called dangling references. 18

Default Arguments 19 It s not uncommon for a program to invoke a function repeatedly with the same argument value for a particular parameter. In such cases, the programmer can specify that such a parameter has a default argument, i.e., a default value to be passed to that parameter. When a program omits an argument for a parameter with a default argument in a function call, the compiler rewrites the function call and inserts the default value of that argument to be passed as an argument in the function call.

Default Arguments 20 Default arguments must be the rightmost (trailing) arguments in a function s parameter list. When calling a function with two or more default arguments, if an omitted argument is not the rightmost argument in the argument list, then all arguments to the right of that argument also must be omitted. Default arguments should be specified with the first occurrence of the function name typically, in the function prototype. If the function prototype is omitted because the function definition also serves as the prototype, then the default arguments should be specified in the function header.

21 Default Arguments

22 Default Arguments

Classes and Objects In C++, we begin by creating a program unit called a class to house a function. A function belonging to a class is called a member function. In a class, you provide one or more member functions that are designed to perform the class s tasks. You must create an object of a class before you can get a program to perform the tasks the class describes. That is one reason C++ is known as an object-oriented programming (OOP) language. Messages are sent to an object. Each message is known as a member-function call and tells a member function of the object to perform its task. 23 This is often called requesting a service from an object.

Classes and Objects We begin with an example (Fig. 16.1) that consists of class GradeBook (lines 8 16) that an instructor can use to maintain student test scores, and a main function (lines 19 23) that creates a GradeBook object. Function main uses this object and its member function to display a message on the screen welcoming the instructor to the grade-book program. 24

25 Classes and Objects

26 Classes and Objects

Classes and Objects 27 Function main is always called automatically when you execute a program. Most functions do not get called automatically. You must call member function displaymessage explicitly to tell it to perform its task. The access-specifier label public: contains the keyword public is an access specifier. Indicates that the function is available to the public that is, it can be called by other functions in the program (such as main), and by member functions of other classes (if there are any). Access specifiers are always followed by a colon (:).

Classes and Objects Each function in a program performs a task and may return a value when it completes its task. When you define a function, you must specify a return type to indicate the type of the value returned by the function when it completes its task. Keyword void to the left of the function name displaymessage is the function s return type. Indicates that displaymessage will not return any data to its calling function when it completes its task. The name of the member function, displaymessage, follows the return type. By convention, function names begin with a lowercase first letter and all subsequent words in the name begin with a capital letter. 28

Classes and Objects Empty parentheses indicate that a member function does not require additional data to perform its task. The first line of a function definition is commonly called the function header. Every function s body is delimited by left and right braces ({ and }). The body of a function contains statements that perform the function s task. 29

Classes and Objects 30 Typically, you cannot call a member function of a class until you create an object of that class. First, create an object of class GradeBook called mygradebook. The variable s type is GradeBook. The compiler does not automatically know what type GradeBook is it s a user-defined type. Tell the compiler what GradeBook is by including the class definition. Each class you create becomes a new type that can be used to create objects. Call the member function displaymessage by using variable mygradebook followed by the dot operator (.), the function name display-message and an empty set of parentheses.

Defining a Member Function with a Parameter Fig. 16.3 redefines class GradeBook (lines 9 18) with a display-message member function (lines 13 17) that displays the course name as part of the welcome message. The new version of displaymessage requires a parameter (coursename in line 13) that represents the course name to output. A string is actually an object of the C++ Standard Library class string. Defined in header file <string> and part of namespace std. For now, you can think of string variables like variables of other types such as int. 31

Defining a Member Function with a Parameter 32

Defining a Member Function with a Parameter 33

Defining a Member Function with a Parameter Library function getline reads a line of text into a string. The function call getline( cin, nameofcourse ) reads characters (including the space characters that separate the words in the input) from the standard input stream object cin (i.e., the keyboard) until the newline character is encountered, places the characters in the string variable nameofcourse and discards the newline character. When you press Enter while typing program input, a newline is inserted in the input stream. 34 The <string> header file must be included in the program to use function getline.