Object Oriented Programming (OOP) Lecture No. 11

Slides:



Advertisements
Similar presentations
Classes & Objects INTRODUCTION : This chapter introduces classes ; explains data hiding, abstraction & encapsulation and shows how a class implements these.
Advertisements

Copyright  Hannu Laine C++-programming Part 7 Hannu Laine Static members Different uses of const specifier.
Structures Spring 2013Programming and Data Structure1.
Chapter 8 Scope, Lifetime and More on Functions. Definitions Scope –The region of program code where it is legal to reference (use) an identifier Three.
OOP Spring 2006 – Recitation 31 Object Oriented Programming Spring 2006 Recitation 3.
More Classes in C++ Bryce Boe 2012/08/20 CS32, Summer 2012 B.
CSC241 Object-Oriented Programming (OOP) Lecture No. 12.
Objects Mark Hennessy Dept. Computer Science NUI Maynooth C++ Workshop 18 th – 22 nd September 2006.
1 Chapter 8 – Classes and Object: A Deeper Look Outline 1 Introduction 2 Implementing a Time Abstract Data Type with a Class 3 Class Scope 4 Controlling.
Classes Joe Meehean. Complex Data Types What if we need more complex data types? not simple primitives like ints, float, and chars data types that are.
Chapter 8 Scope of variables Name reuse. Scope The region of program code where it is legal to reference (use) a variable The scope of a variable depends.
CSC241 Object-Oriented Programming (OOP) Lecture No. 8.
Classes In C++ 1. What is a class Can make a new type in C++ by declaring a class. A class is an expanded concept of a data structure: instead of holding.
 Classes in c++ Presentation Topic  A collection of objects with same properties and functions is known as class. A class is used to define the characteristics.
Object Oriented Programming (OOP) Lecture No. 11.
Object Oriented Programming (OOP) Lecture No. 10.
Object Oriented Programming (OOP) Lecture No. 8. Review ► Class  Concept  Definition ► Data members ► Member Functions ► Access specifier.
CSC241 Object-Oriented Programming (OOP) Lecture No. 6.
CSC241 Object-Oriented Programming (OOP) Lecture No. 7.
CSC241 Object-Oriented Programming (OOP) Lecture No. 4.
1 Announcements Note from admins: Edit.cshrc.solaris instead of.tcshrc Note from admins: Do not use delta.ece.
C++ Programming Lecture 11 Functions – Part III By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Chapter 3 Part I. 3.1 Introduction Programs written in C ◦ All statements were located in function main Programs written in C++ ◦ Programs will consist.
C++ Lecture 5 Monday, 18 July Chapter 7 Classes, continued l const objects and const member functions l Composition: objects as members of classes.
CSC241 Object-Oriented Programming (OOP) Lecture No. 5.
Structures Revisited what is an aggregate construct? What aggregate constructs have we studied? what is a structure? what is the keyword to define a structure?
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Today: –Review declaration, implementation, simple class structure. –Add an exception class and show.
Introduction to Programming Lecture 40. Class Class is a user defined data type.
Programming Fundamentals. Topics to be covered Today Recursion Inline Functions Scope and Storage Class A simple class Constructor Destructor.
1 Classes II Chapter 7 2 Introduction Continued study of –classes –data abstraction Prepare for operator overloading in next chapter Work with strings.
Object-Oriented Programming in C++ Lecture 4 Constants References Operator overloading.
 constant represented by a name, just like a variable, but whose value cannot be changed  The const keyword precedes the type, name, and initialization.
Programming Fundamentals1 Chapter 7 INTRODUCTION TO CLASSES.
Dynamic Memory Management & Static Class Members Lecture No 7 Object Oriented Programming COMSATS Institute of Information Technology.
Object Oriented Programming (OOP) Lecture No.2 Downloaded From:
Classes (Part 1) Lecture 3
Object-Oriented Programming (OOP) Lecture No. 15
Structures Revisited what is an aggregate construct? What aggregate constructs have we studied? what is a structure? what is the keyword to define a structure?
Friend Class Friend Class A friend class can access private and protected members of other class in which it is declared as friend. It is sometimes useful.
Object Oriented Programming (OOP) Lecture No. 8
Object-Oriented Programming (OOP) Lecture No. 21
A Lecture for the c++ Course
Review: Two Programming Paradigms
Structures Revisited what is an aggregate construct? What aggregate constructs have we studied? what is a structure? what is the keyword to define a structure?
Road Map Introduction to object oriented programming. Classes
This technique is Called “Divide and Conquer”.
Templates.
Static Data Member and Functions
Object Oriented Programming (OOP) Lecture No. 9
Programming -2 برمجة -2 المحاضرة-7 Lecture-7.
Local Variables, Global Variables and Variable Scope
Static in Classes CSCE 121 J. Michael Moore.
Object Oriented Programming Using C++
Object-Oriented Programming (OOP) Lecture No. 25
Introduction to Programming
Static is one of the modifiers that determine variable and method characteristics. The static modifier associates a variable or method with its class.
Object-Oriented Programming (OOP) Lecture No. 22
Object oriented programming (OOP) Lecture No. 7
7 Arrays.
Dynamic Memory.
Submitted By : Veenu Saini Lecturer (IT)
CS410 – Software Engineering Lecture #5: C++ Basics III
Object oriented programming (OOP) Lecture No. 6
Object-Oriented Programming (OOP) Lecture No. 23
Types of Computer Languages
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
Object Oriented Programming (OOP) Lecture No. 12
Object Oriented Programming (OOP) Lecture No. 10
Classes Member Qualifiers
Object Oriented Programming
Presentation transcript:

Object Oriented Programming (OOP) Lecture No. 11

Review this Pointer Separation of interface and implementation Constant member functions

Problem Change the class Student such that a student is given a roll number when the object is created and cannot be changed afterwards

Student Class class Student{ … int rollNo; public: Student(int aNo); int getRollNo(); void setRollNo(int aNo); };

Modified Student Class class Student{ … const int rollNo; public: Student(int aNo); int getRollNo(); void setRollNo(int aNo); };

Example Student::Student(int aRollNo) { rollNo = aRollNo; /*error: cannot modify a constant data member*/ }

Example void Student::SetRollNo(int i) { rollNo = i; /*error: cannot modify a constant data member*/ }

Member Initializer List A member initializer list is a mechanism to initialize data members It is given after closing parenthesis of parameter list of constructor In case of more then one member use comma separated list

Example class Student{ const int rollNo; char *name; float GPA; public: Student(int aRollNo) : rollNo(aRollNo), name(Null), GPA(0.0){ … } };

Order of Initialization Data member are initialized in order they are declared Order in member initializer list is not significant at all

Example class ABC{ int x; int y; int z; public: ABC(); };

Example ABC::ABC():y(10),x(y),z(y) { … } /* x = Junk value y = 10

const Objects Objects can be declared constant with the use of const keyword Constant objects cannot change their state

Example int main() { const Student aStudent; return 0; }

Example class Student{ … int rollNo; public: int getRollNo(){ return rollNo; } };

Example int main(){ const Student aStudent; int a = aStudent.getRollNo(); //error }

const objects cannot access “non const” member function Chances of unintentional modification are eliminated

Example class Student{ … int rollNo; public: int getRollNo()const{ return rollNo; } };

Example int main(){ const Student aStudent; int a = aStudent.getRollNo(); }

Constant data members Make all functions that don’t change the state of the object constant This will enable constant objects to access more member functions

Static Variables Lifetime of static variable is throughout the program life If static variables are not explicitly initialized then they are initialized to 0 of appropriate type

Example Output: 1 void func1(int i){ static int staticInt = i; cout << staticInt << endl; } int main(){ func1(1); func1(2); Output: 1

Static Data Member Definition “A variable that is part of a class, yet is not part of an object of that class, is called static data member”

Static Data Member They are shared by all instances of the class They do not belong to any particular instance of a class

Class vs. Instance Variable Student s1, s2, s3; Class Space s1(rollNo,…) s2(rollNo,…) s3(rollNo,…) Instance Variable Class Variable

Static Data Member (Syntax) Keyword static is used to make a data member static class ClassName{ … static DataType VariableName; };

Defining Static Data Member Static data member is declared inside the class But they are defined outside the class

Defining Static Data Member class ClassName{ … static DataType VariableName; }; DataType ClassName::VariableName;

Initializing Static Data Member Static data members should be initialized once at file scope They are initialized at the time of definition

Example class Student{ private: static int noOfStudents; public: … }; int Student::noOfStudents = 0; /*private static member cannot be accessed outside the class except for initialization*/

Initializing Static Data Member If static data members are not explicitly initialized at the time of definition then they are initialized to 0

Example int Student::noOfStudents; is equivalent to