introduction to c++ programming - object oriented programming concepts - structured vs oop. classes...

19
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope and accessing members - access functions and utility functions. Unit - V

Upload: kerrie-reynolds

Post on 13-Dec-2015

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Introduction to c++ programming

- object oriented programming concepts

- Structured Vs OOP.

Classes and objects

- class definition

- Objects

- class scope and accessing members

- access functions and utility functions.

Unit - V

Page 2: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

• History of C++ – Extension of C– Early 1980s: Bjarne Stroustrup (Bell Laboratories)

– Originally named “C with Classes”.– Provides capabilities for object-oriented programming• Objects: reusable software components

– Model items in real world• Object-oriented programs

– Easy to understand, correct and modify– Hybrid language

• C-like style• Object-oriented style• Both

Page 3: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Object Oriented Programming

• OOP is a programming style that is focused on

objects

• Important Features of OOP

– Abstraction

– Encapsulation

– Inheritance

– Polymorphism

Page 4: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Abstraction

• Showing only the essential features and hiding the

unnecessary features

• The access modifiers in C++ or any OOP language,

provides abstraction

• Functions also provide abstraction

• If a variable is declared as private, then other classes

cannot access it

• The function name that is used in function call hides

the implementation details from user. It shows only the

outline of functionality that the function provides.

Page 5: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Encapsulation

• The process of bringing together the data and

method of an object is called as encapsulation

• The data and method are given in the class

definition

• Classes provides us with this feature -

Encapsulation

Page 6: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Inheritance

• Feature that enables the characteristics or

properties of a parent to reach its child

• C++ supports inheritance

• A class can inherit one or more classes

• Inherited class is called as parent class or

super class or base class

• Class that inherits a parent class is called as

child class or sub class or derived class

Page 7: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Polymorphism

• Poly – Many

• Morph – Form

• Polymorphism is the characteristic that enables

an entity to co exist in more than one form

• C++ supports function overloading and operator

overloading to implement polymorphism

Page 8: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Structured Vs OOP

Structured OOP

Focuses on Process Focuses on Object

Follows Top Down Approach

Follows Bottom Up Approach

Page 9: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

• Top Down approach

– A Single module will be split into several smaller modules

– General to Specific

• Bottom Up approach

– Lot of small modules will be grouped to form a single large

module

– Specific to General

• If the requirements are clear at the first instance we can go

for Top down approach

• In circumstances where the requirements may keep on adding, we

go for Bottom up approach

Page 10: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

MAIN PROGRAM

FUNCTION 3FUNCTION 2

GLOBAL DATA

FUNCTION 5FUNCTION 4

FUNCTION 1

• Using function• Function & program is divided into modules• Every module has its own data and function

which can be called by other modules.

Structured Programming

Page 11: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

OBJECT ORIENTED PROGRAMMING

Object 1 Object 2

Data

Function

Data

Function

Object 3

Data

Function

•Objects have both data and methods• Objects of the same class have the same data elements and methods• Objects send and receive messages to invoke actions

Page 12: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

I/O in C++

• Since C++ is a superset of C, all of the C I/O

functions such as printf and scanf which are found

in the stdio.h header file, are still valid in C++.

• C++ provides an alternative with the new stream

input/output features by including “iostream.h”.• Several new I/O objects available when you include the iostream header file. Two important ones are:

– cin // Used for keyboard input – cout // Used for screen output

• Both cin and cout can be combined with other member functions for a wide variety of special I/O capabilities in program applications.

Page 13: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

• Since cin and cout are C++ objects, they are somewhat "intelligent":– They do not require the usual format strings and conversion specifications.

– They do automatically know what data types are involved.

– They do not need the address operator, &.– They do require the use of the stream extraction ( >> ) and insertion ( << ) operators.

• The next slide shows an example of the use of cin and cout.

Page 14: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

04/18/23 14

Classes in C++Class is defined as:• A collection of related variables and functions into a single structure• A user-defined complex data type with its own operationsObject:

Instances of the class are called objects. The variables and functions in the definition of the class are called members.

Syntax to create a Class:class class-name { private data and functionsaccess-specifier: data and functionsaccess-specifier: data and functions// ...access-specifier: data and functions} object-list;

The object-list is optional. If present, it declares objects of the class.

Page 15: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

04/18/23 15

access-specifier is one of these three C++ keywords:

publicprivate (default) Protected

- private data can be accessed only by other members of the class. - public data can be accessed by other parts of the program - protected needed only when inheritance is involved.- access-specifier can be changed in any order, default is private.

Class Scope• Class data members and member functions belong to that

class's scope.• Within a class's scope, class members are references by

name.• Outside a class's scope, class members are referenced

through one of the handles on an object.• Use dot (.) notation for object and references.• Use arrow (->) for pointer to the object• E.g.,

c.x , cpt -> x

Page 16: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Implementation of a Class

Class declaration contains:

Declarations of data members

Prototypes (declarations) of function members

Definitions of function members are not usually placed

in class declaration

Definitions placed outside the class declaration must

tell compiler where the corresponding

declaration/prototype is :

Use the scope operator :: which has the form

ClassName::ItemName

Page 17: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

1. Member functions: "Inside" an object, so don't pass object to them as a parameter. (They receive the object to be operated on implicitly, rather than explicitly via a parameter.)Non-member functions: "Outside" an object, so to operate on an object, they must receive it via a parameter.

2. Public items must be qualified when referred to outside the class declaration:

ClassName::ItemNamePublic constants are usually declared static so they are global class properties that can be accessed by all objects of that class type rather than each object having its own copy.

3. Simple member functions: Usually specified as inline functions.

This suggests to compiler to replace a function call with actual code of the function with parameters replaced by arguments — saves overhead of function call.

Page 18: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Access Functions and Utility Functions

• Utility functions – private functions that support the operation of public functions

– Not intended to be used directly by clients

• Access functions – public functions that read/display data or check conditions

– For a data structure, it could call the isEmpty function

Page 19: Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope

Assignment - 5

1. Distinguish between a `struct' and a `class' in C++?

2. How does a class accomplish data hiding? Explain with an example.

3. Explain the benefits of object oriented programming over procedure oriented programming

4. What are the access privileges in C++? What is the default access level?

5. What do you mean by Encapsulation and explain in detail.

6. What is the difference between “C structure” and “C++ structure”.

7. Explain about the C++ classes in detail and design a class for playing cards?

8. Discuss in detail about utility functions and access functions.