Introduction to Classes, Objects and...

30
Introduction to Classes, Objects and Strings 009992: Problem Solving and Lab: C++

Transcript of Introduction to Classes, Objects and...

Page 1: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Introduction to Classes, Objects

and Strings

009992: Problem Solving and Lab: C++

Page 2: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

3.1 Introduction

• In this lesson, you’ll begin writing programs that employ the basic concepts of object-oriented programming that we introduced in the first class.

• Typically, the programs you develop in this course will consist of function main and one or more classes, each containing data members and member functions.

• In this tutorial, we develop a simple, well-engineered framework for organizing object-oriented programs in C++.

Page 3: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •
Page 4: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Member Functionw. Parameter

Page 5: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Member Functionw. Parameter

Page 6: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Class w. a data member andSet and Get Functions

Page 7: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Class w. a data member andSet and Get Functions

Client of an Objects

Mutators

Accessors

Page 8: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Class w. a data member andSet and Get Functions

Empty String

Page 9: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Objects w. Constructors

C++ requires a constructor for each object

Page 10: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Objects w. Constructors

Page 11: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Objects w. Constructors

Page 12: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Default Constructor: Constructor w. no parameter (Two ways to provide)

Page 13: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Placing a Class in separate files

Page 14: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Placing a Class in separate files

Page 15: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Placing a Class in separate files

Page 16: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Placing a Class in separate files

Page 17: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Separating Interface from Implementation

Page 18: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Function Prototypes

Page 19: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Function Prototypes

Separating Interface from Implementation

Page 20: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Binary Scope Resolution

Separating Interface from Implementation

Page 21: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Separating Interface from Implementation

Page 22: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

GradeBook.hGradeBook.cpp

main.cpp

Separating Interface from Implementation

Page 23: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Compilation and LinkingProcess

Page 24: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

3.5 Initializing Objects with Constructors (cont.)

• Any constructor that takes no arguments is called a default constructor.

• A class gets a default constructor in one of several ways:

– The compiler implicitly creates a default constructor in every class that does not have any user-defined constructors.

– The default constructor does not initialize the class’s data members, but does call the default constructor for each data member that is an object of another class. An uninitialized variable contains an undefined (“garbage”) value.

– You explicitly define a constructor that takes no arguments. Such a default constructor will call the default constructor for each data member that is an object of another class and will perform additional initialization specified by you.

– If you define any constructors with arguments, C++ will not implicitly create a default constructor for that class.

Page 25: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

3.6 Placing a Class in a Separate File for Reusability (cont.)

• Each of the previous examples in the lesson consists of a single .cpp file, also known as a source-code file, that contains a GradeBook class definition and a main function.

• When building an object-oriented C++ program, it’s customary to define reusable source code (such as a class) in a file that by convention has a .h filename extension—known as a header.

• Programs use #include preprocessing directives to include header files and take advantage of reusable software components.

Page 26: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Validating Data with set Functions

Page 27: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

main.cpp

Gradebook.cpp

Validating Data

with set Functions

Page 28: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Validating Data with set Functions

Page 29: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

Summary: Classes, Objects, Member Functions and Data Members

Page 30: Introduction to Classes, Objects and Stringslecture.riazulislam.com/uploads/3/9/8/5/3985970/cpp_slides_03.pdf · 3.6 Placing a Class in a Separate File for Reusability (cont.) •

What we learned

• Define a Class with a Member Function

• Define a Member Function with a Parameter

• Data Members, set Functions and get Functions

• Initializing Objects with Constructors

• Placing a Class in a separate file for reusability

• Separating Interface from Implementation