31
LECTURE 1 Bushra Riaz

LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

Embed Size (px)

Citation preview

Page 1: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

LECTURE 1Bushra Riaz

Page 2: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

COURSE OUTLINECourse Code: EC-241

Credits: 4 (3,1) Prerequisites: EC-111 Algorithms and

Computing Text Book

C++ How to Program, Deitel and Deitel, 7th Edition, ISBN-10: 0-13-611726-0, Prentice Hall, 2009

References Object Oriented Programming with C++, Robert Lafore,

4th Edition, ISBN-10: 0-672-32308-7, Sams, 2002 The complete Reference C++, Herber Schildt, 3rd Edition The Unified Modeling Language User Guide, Booch,

Rumbaugh, Addison- Wesley, ISBN-10: 0-321-26797-4, 2nd Edition, 2005

Page 3: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

COURSE OUTLINEIntroduction: Procedural versus Object Oriented

Programming (OOP), characteristics of OOP, advantages of OOP, Abstract Data Types (ADT), information hiding, encapsulation.

Classes and Objects: Classes, objects, access specifiers, data members, member functions, properties, getters and setters, object aggregation.

Constructors and Destructors: Default constructors, overloaded constructors, copy constructor, conversion constructor, shallow vs. deep copy.

Page 4: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

COURSE OUTLINEStatic Members: Static data members and

static member functions. Generic Programming and Overloading:

Function overloading, operator overloading, templates, C++ standard template library (STL).

Dynamic memory management for objects: Pointers to objects, reference variables

Page 5: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

COURSE OUTLINEInheritance and Polymorphism:

Inheritance, types of inheritance, derived classes, function overriding, dynamic binding, polymorphism, virtual functions.

Streams and Files: Stream classes, File objects, File operations with streams.

Object-Oriented Design: Introduction to Unified Modeling Language (UML).

Page 6: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

Evaluation Methods:AssignmentsQuizzesMidterm exams Final Exam LabProject

Page 7: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

PROCEDURAL VS. OBJECT-ORIENTED LANGUAGES

Procedural LanguageViews a program as a series of steps to be

carried outE.g. C, FORTRAN, Pascal

Object Oriented LanguageViews a program as a group of objects that

have certain properties and can perform certain functions

E.g. C++, Java, C#

Page 8: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

PROCEDURAL VS. OBJECT-ORIENTED LANGUAGESProblems with Procedural Languages

Cannot cope with very large project sizesExpensive software errors (e.g. air traffic

control)Causes of Problems

Unrestricted Access to Data Global data is allowed Access to data by multiple functions means many

connections between functions Programs become difficult to understand, modify and

maintain

Page 9: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

PROCEDURAL VS. OBJECT-ORIENTED LANGUAGES

Poor Modeling of Real World Things Real world things are integral collections of data

and functions e.g. a car: has data (make, model etc.) and

functions (acceleration) Procedural languages do not tie up data with

functions

Page 10: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

ExampleProcedural program1. Gather ingredients

Flour, butter, egg, sugar etc2. preheat oven to 350 degree3. beat eggs and butter4. add sugar5. mix6. bake 10 mins

Page 11: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

Example Object Oriented programingModel for an Object

Properties List of ingridients, or set of data

Methods List of actions or instructions

Page 12: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

ExampleObject Oriented programingBaker {

Properties (ingredients) Flour Butter Eggs Milk Cake pan Oven

Methods (actions) Bake cookies Bake cake Bake pie

}

1. Gather ingredientsFlour, butter, egg, sugar etc

2. preheat oven to 350 degree3. beat eggs and butter4. add sugar5. mix6. bake 10 mins

Page 13: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

Global Data

Global Data

Global Data

Function Function Function Function

Page 14: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

GOAL OF OOPClearer, more reliable, more easily

maintained programsMore effective way of coping with program

complexity

Page 15: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

OBJECT-ORIENTED LANGUAGESC++

Most widely usedLargest programmer base

JavaLacks certain features, e.g. multiple

inheritance, pointers, templatesLess powerful than C++ (but more safe, of

course)C#

Emerging

Page 16: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

THE OO APPROACHThe fundamental idea is to combine into a

single unit both data and functions that operate on the data.

Such a unit is called an “Object”.An object’s functions are called “member

functions” in C++And its data is called “ data members”.

Page 17: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

THE OO APPROACHAn object’s data is typically accessed through

its member functions, i.e. it is hidden from accidental alteration

Data and its function are said to be encapsulated into a single entity

Data encapsulation and data hiding are key elements of object-oriented languages

Page 18: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

THE OO APPROACHIf you want to modify data in an object, you

know exactly what functions interact with it (i.e. the member functions of the object).

This simplifies writing, debugging, and maintaining the programs

An OO program consists of a number of objects which communicate with each other’s member functions

Page 19: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

object

Data

Member Function

Member Function

Data

Member Function

Member Function

Data

Member Function

Member Function

objectobject

Page 20: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

CHARACTERISTICS OF OO LANGUAGESObjectsClasses

EncapsulationInheritance Polymorphism and overloading

Page 21: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

CLASSESObjects belong to classesA class and an object of that class has the

same relationship as a data type and a variable

All objects with the same characteristics (data and functions) constitute one class.

A class serves only as a plan, or a template, or sketch- of a number of similar things

It merely specifies what data and what functions will be included in objects of that class.

Page 22: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

CLASSESDeclaring a class doesn’t create any objects,

just as mere existence of data type int doesn’t create any variables.

A class is thus a description of a no. of similar objects.

For instance, HUMAN is a class, and JOHN is its instance (object)

Page 23: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

EncapsulationInformation hidingEncapsulation is the mechanism that binds

together code and the data it manipulates, and keep both safe from outside inteference and missuse

Data

Member FunctionMember Function

Data

Member FunctionMember Function

objectobject

Page 24: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

INHERITANCEDerive other (sub-)classes from an existing

classThe original class is called the BASE CLASS;

the others are DERIVED CLASSESEach class shares common characteristics

with the class from which it was derived, and can also add its own modifications, additions.

For instance, VEHICLE is a class from which CAR, TRUCK, BUS, MOTORCYCLE classes can be derived.

Page 25: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

Base class

Derived classes

FFeature A

FFeature B

FFeature A

FFeature B

FFeature C

FFeature A

FFeature B

FFeature D

FFeature E

FFeature A

FFeature B

FFeature F

Page 26: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

POLYMORPHISM AND OVERLOADINGUsing operators or functions in different ways

depending on what they are operating on is called polymorphism (lit. one thing with several distinct forms)

Overloading is a special case of polymorphism, e.g. +, -, /, << etc.

Page 27: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

C++

C

Page 28: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

#include <iostream>

using namespace std;

int main()

{

cout<<“Every age has a language of its own\n”;

return 0;

}

Page 29: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

PROGRAM EXPLANATION<iostream>

This header supports C++ I/O operations.iostream is to C++ what stdio.h is to C

using namespace stdThis tells the compiler to use the std name spacestd::coutThis is the namespace in which the entire Standard

C++ library is declaredThis is required when we use the names that are

brought into the program by the processor directive #include<iostream>

int main()

Page 30: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

PROGRAM EXPLANATIONcout

An object Predefined in C++ to correspond with the

“standard output stream”

StreamAn abstraction that refers to a flow of dataThe standard output stream normally flows to the

screen

The Operator <<Directs the contents of the variable on its right to

the object on its left.

Page 31: LECTURE 1 Bushra Riaz. COURSE OUTLINE Course Code: EC-241 Credits:4 (3,1) Prerequisites: EC-111 Algorithms and Computing Text Book C++ How to Program,

int main()

{

int ftemp;

cout<<“Enter temperature in fahrenheit: “;

cin>>ftemp;

int ctemp=(ftemp-32)*5/9;

cout<<“Equivalent in celsius is : “<<ctemp;

cout<<endl;

return 0;

}