0% found this document useful (0 votes)
28 views

Lecture - 3 Oop

This document discusses object oriented programming concepts like classes, objects, member functions, constructors, and destructors. It provides examples of a Book class with member functions to set book attributes, and a Counter class with a constructor to initialize count to 0. Constructors are called automatically when an object is created to ensure proper initialization. Destructors are called when an object is destroyed to deallocate any allocated memory.

Uploaded by

dullahtwo786
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

Lecture - 3 Oop

This document discusses object oriented programming concepts like classes, objects, member functions, constructors, and destructors. It provides examples of a Book class with member functions to set book attributes, and a Counter class with a constructor to initialize count to 0. Constructors are called automatically when an object is created to ensure proper initialization. Destructors are called when an object is destroyed to deallocate any allocated memory.

Uploaded by

dullahtwo786
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

CSC241: Object Oriented Programming

Lecture No 02

1
Previous lecture
• A simple analogy
– A class is a blue print e.g. car engineering drawing
– An object has existence e.g. my car
• Each object has its attributes (variables) and
behavior (functions)
• To perform a task describe by class, an object of
that class must be created
• Class definition begins with keyword class
• Class name begins with capital letter
• Class definition is enclosed in pair of braces { }
2
Cont.
• Member function that appear after the access
specifier public can be called by other function
and member functions of that class
• Access specifier are always followed by :
• Each message sent to an object is a member-
function call that tells the object to perform a
task
• Member function can be access by object of class
using dot operator

3
Defining a class with member function

4
Today’s Lecture
• Simple C++ program using cin and cout
• Member function with parameters
• Set functions and get functions
• Constructor

5
Member function with parameter

Write a program 6
A book class

7
Class data
• The class Book contain three data items
– char name[15];
– int pages;
– float price;
• There can be any number of data members in a class
just as in structure
• Data member are after the keyword private, so they
can be accessed from within the class, but not
outside

8
Member function
• These functions are included in a class
• There are four member functions in class Book
– setName(char *n)
– setPages(int p)
– setPrice(float p)
– display()
• These functions are followed by a keyword public,
so they can be accessed outside the class

9
Class data and member function
• Access specifier label public and private
• Function are public and data is private
• Data is hidden so that it can be safe from
accidental manipulation
• Functions operates on data are public so they
can be accessed from outside the class

10
Defining Objects

b1
name Operating system
pages 500
price 150.56
11
Cont.

• Defining an object is similar to defining a


variable of any data type: Space is set aside for
it in memory e.g. int x;
• Defining objects in this way (book b1;) means
creating them
• An object is an instance (that is, a specific
example) of a class. Objects are sometimes
called instance variables.

12
Calling Member Functions
• The next four statements in main() call the member
function
– b1.setName("Operating System");
– b1.setPages(500);
– b1.setPrice(150.56);
– b1.display();
• don’t look like normal function calls
• This syntax is used to call a member function that is
associated with a specific object
• It doesn’t make sense to say
– changeName("Operating System");
because a member function is always called to act on a
specific object, not on the class in general 13
Cont.
• To use a member function, the dot operator
(the period) connects the object name and the
member function.
• The syntax is similar to the way we refer to
structure members, but the parentheses
signal that we’re executing a member function
rather than referring to a data item.
• The dot operator is also called the class
member access operator.
Go to program 14
Data members, set and get functions

15
Example program – Distance class
• Data members
– Feet
– Inches
• Member functions
– void setdist(int ft, float in);
– void getdist();
– void initialize();
– void showdist();
Go to program
16
Distance class – data member initialization
• Distance class shows two ways to initialize the data
items in an object
– void initialize();
– void setdist(int ft, float in);
• Can an object be initialized whenever it is created,
without requiring a separate call to a member
function?
• Automatic initialization is carried out using a special
member function called a constructor.
• A constructor is a member function that is executed
automatically whenever an object is created.
17
Constructors
• C++ requires a construct call for each object it
has created
• This ensure that object is initialized properly
before it is used
• If there is no constructor, the compiler
provides a default constructor that is, a
constructor with no parameters
• Name of constructor function is same as name
of class
18
A counter example
• Data member
– Count
• Member function
– Constructor
– void inc_count()
– int get_count()

Go to program

19
Automatic initialization
• An object of type Counter is first created, we
want its count to be initialized to 0
• Options are
– set_count() function (call it with an argument of 0)
– zero_count() function, to set count to 0.
• Such functions would need to be executed
every time we created a Counter object

20
Cont.
• A programmer may forget to initialize the object
after creating it
• It’s more reliable and convenient to cause each
object to initialize implicitly when it is created
• In the Counter class, the constructor Counter() is
called automatically whenever a new object of type
Counter is created
• Counter c1, c2;
creates two objects. Constructor is called with each
object separately
Go to program
21
Constructor Name
• First, constructor name must be same as the
name of class
– This is one way the compiler knows they are
constructors
• Second, no return type is used for constructors
– Why not? Since the constructor is called automatically
by the system, there’s no program for it to return
anything to; a return value wouldn’t make sense
– This is the second way the compiler knows they are
constructors

22
Initializer List
• One of the most common tasks a constructor carries
out is initializing data members
• In the Counter class the constructor must initialize
the count member to 0
• The initialization takes place following the member
function declarator but before the function body.
• Initialization in constructor’s function body
Counter()
{ count = 0; }
this is not the preferred approach

23
Cont.
• It’s preceded by a colon. The value is placed in
parentheses following the member data.
Counter() : count(0)
{ }
• If multiple members must be initialized,
they’re separated by commas.
– someClass() : m1(7), m2(33), m2(4) ←initializer list
{ }

24
Placing a Class in a Separate File
• Header file (.h)
– Contain definition of class
– Not an executable file
– Included in .cpp file
• main () file (.cpp)
– Include .h file containing class definition
– Executable file

Go to program
25
Destructors
• Destructor is a function called automatically
when an object is destroyed
• The most common use of destructors is to
deallocate memory that was allocated for the
object by the constructor

See the code Go to Game

26
Validating Data with set Functions
• A set function should validate the value before
assigning to private data member
• Set function can return a value or may display
a message if invalid data is assign to object

27

You might also like