SlideShare uma empresa Scribd logo
1 de 28
Is Opp
Different functions
Different data type
User define data type
Builtin data type
C++
INSERT LOGO HERE
Introduction object oriented programming
The object-oriented programming (OOP) is a different approach to programming.
Object oriented technology supported by C++ is considered the latest technology
in software development. It is regarded as the ultimate paradigm for the modelling
of information, be that data or logic.
. Object oriented programming – As the name suggests uses objects in programming.
Object oriented programming aims to implement real world entities like inheritance,
hiding, polymorphism etc in programming. The main aim of OOP is to bind together the
data and the functions that operates on them so that no other part of code can access
this data except that function.
to divide complex problems into smaller sets by creating objects is called oop.
Advantage of OOPs over Procedure-oriented programming language
1) OOPs makes development and maintenance easier where as in Procedure-oriented programming language it is not easy to
manage if code grows as project size grows.
2) OOPs provides data hiding whereas in Procedure-oriented programming language a global data can be accessed
from anywhere.
igure: Data Representation in Procedure-Oriented Programming
3) OOPs provides ability to simulate real-world event much more effectively. We can provide the
solution of real word problem if we are using the Object-Oriented Programming language.
Main concept are 2
Class ( blue print )
Object ( real world example )
OOP
Basic Concepts
C++ Classes and Objects
Class: The building block of C++ that leads to Object Oriented programming is a Class. It is a user defined
data type, which holds its own data members and member functions, which can be accessed and used by
creating an instance of that class. A class is like a blueprint for an object.
A class have some properties.
1 A Class is a user defined data-type which has data members and member functions.
2 Data members are the data variables and member functions are the functions used to manipulate these variables and
together these data members and member functions defines the properties and behavior of the objects in a Class.
Objectis an instance of a Class. When a class is defined, no memory is allocated but when it is instantiated (i.e. an
object is created) memory is allocated.
Class syntax ========= class class_name{ body of a class }; // it is out of main
Object syntax ========= class_name object ; // it is inside of main
Inheritance The capability of a class to derive properties and
characteristics from another class is called Inheritance
In normal terms ENCP is defined as wrapping up of data and information under
a single unit. In Object Oriented Programming, Encapsulation is defined as
binding together the data and the functions that manipulates them.
Abstraction means displaying only essential information and hiding the details.
Data abstraction refers to providing only essential information about the data
to the outside world, hiding the background details or implementation.
Classes It is a user defined data type, which holds its own data members and member
functions, which can be accessed and used by creating an instance of that class.
A class is like a blueprint for an object. For Example: Consider the Class of Cars.
Class ( blue print
Data abstrauction
Data encapsulation
Inheretance
Polymorphism
The word polymorphism means having many forms. In simple words,
we can define polymorphism as the ability of a message to be
displayed in more than one form.
1 Abstraction
Abstraction using Classes: We can implement Abstraction in C++ using classes.
Class helps us to group data members and member functions using available
access specifiers. A Class can decide which data member will be visible to
outside world and which is not.
• Members declared as public in a class, can be accessed from anywhere in the program.
• Members declared as private in a class, can be accessed only from within the class. They are
not allowed to be accessed from any part of code outside the class.
Example :
#include <iostream>
using namespace std;
class car
{
private:
int a, b;
public:
// method to set values of
// private members
void set(int x, int y)
{
a = x;
b = y;
}
void display()
{
cout<<"a = " <<a << endl;
cout<<"b = " << b << endl;
}
};
int main()
{
car obj;
obj.set(10, 20);
obj.display();
return 0;
}
2 Encapsulation
Encapsulation also lead to data abstraction or hiding. As using encapsulation also hides the data. In the
above example the data of any of the section like sales, finance or accounts is hidden from any other section.
 Role of access specifiers in encapsulation
As we have seen in above example, access specifiers plays an important role in implementing encapsulation in
C++. The process of implementing encapsulation can be sub-divided into two steps:
The data members should be labeled as private using the private access specifiers
The member function which manipulates the data members should be labeled as public using the public access
specifier
 In C++ encapsulation can be implemented using Class and access modifiers.
// c++ program to explain
// Encapsulation
#include<iostream>
using namespace std;
class Encapsulation{
private:
// data hidden from outside world
int x;
public:
// function to set value of
// variable x
void set(int a)
{
x =a;
}
// function to return value of
// variable x
int get() {
return x;
}
};
// main function
int main()
{
Encapsulation obj;
obj.set(5);
cout<<obj.get();
return 0;
}
Sub Class: The class that inherits properties from another class is called Sub class or Derived Class.
Super Class:The class whose properties are inherited by sub class is called Base Class or Super class.
The article is divided into following subtopics:
1 Why and when to use inheritance?
2 Modes of Inheritance
3 Types of Inheritance
1 Why and when to use inheritance?
Consider a group of vehicles. You need to create classes for Bus, Car and Truck. The methods fuelAmount(), capacity(),
applyBrakes() will be same for all of the three classes. If we create these classes avoiding inheritance then we have to
write all of these functions in each of the three classes as shown in below figure:
This is inheritance in class
Implementing inheritance in C++: For creating a sub-class which is inherited from the base class we have to
follow the below syntax.
Note: A derived class doesn’t inherit access to private data members. However, it does inherit a full parent object, which
contains any private members which that class declares.
class subclass_name : access_mode base_class_name
{ //body of subclass };
Modes of Inheritance
1.Public mode: If we derive a sub class from a public base class. Then
the public member of the base class will become public in the derived
class and protected members of the base class will become protected
in derived class.
2.Protected mode: If we derive a sub class from a Protected base
class. Then both public member and protected members of the base
class will become protected in derived class.
3.Private mode: If we derive a sub class from a Private base class.
Then both public member and protected members of the base class will
become Private in derived class.
Note : The private members in the base class cannot be directly
accessed in the derived class, while protected members can be directly
accessed. For example, Classes B, C and D all contain the variables x,
y and z in below example. It is just question of access.
// C++ Implementation to show that a derived class
// doesn’t inherit access to private data members.
// However, it does inherit a full parent object
class A
{
public:
int x;
protected:
int y;
private:
int z;
};
class B : public A
{
// x is public
// y is protected
// z is not accessible from B
};
class C : protected A
{
// x is protected
// y is protected
// z is not accessible from C
};
class D : private A // 'private' is default for classes
{
// x is private
// y is private
// z is not accessible from D
};
Types of Inheritance in C++
Single Inheritance: In single inheritance, a class is allowed to inherit from only one class. i.e. one sub class is inherited by
one base class only.
class subclass_name : access_mode base_class
{ //body of subclass };
// C++ program to explain
// Single inheritance
#include <iostream>
using namespace std;
// base class
class Vehicle {
public:
Vehicle()
{
cout << "This is a Vehicle" << endl;
}
};
// sub class derived from two base classes
class Car: public Vehicle{
};
// main function
int main()
{
// creating object of sub class will
// invoke the constructor of base classes
Car obj;
return 0;
}
Multiple Inheritance: Multiple Inheritance is a feature of C++ where a class can inherit from more than one
classes. i.e one sub class is inherited from more than one base classes.
Syntax:
class subclass_name : access_mode base_class1, access_mode base_class2, ....
{ //body of subclass };
// C++ program to explain
// multiple inheritance
#include <iostream>
using namespace std;
// first base class
class Vehicle {
public:
Vehicle()
{
cout << "This is a Vehicle" << endl;
}
};
// second base class
class FourWheeler {
public:
FourWheeler()
{
cout << "This is a 4 wheeler Vehicle" <<
endl;
}
};
// sub class derived from two base classes
class Car: public Vehicle, public FourWheeler {
};
// main function
int main()
{
// creating object of sub class will
// invoke the constructor of base
classes
Car obj;
return 0;
}
Multilevel Inheritance: In this type of inheritance, a derived class is created from another derived class.
// C++ program to implement
// Multilevel Inheritance
#include <iostream>
using namespace std;
// base class
class Vehicle
{
public:
Vehicle()
{
cout << "This is a Vehicle" << endl;
}
};
class fourWheeler: public Vehicle
{ public:
fourWheeler()
{
cout<<"Objects with 4 wheels are
vehicles"<<endl;
}
};
// sub class derived from two base classes
class Car: public fourWheeler{
public:
car()
{
cout<<"Car has 4 Wheels"<<endl;
}
};
// main function
int main()
{
//creating object of sub class will
//invoke the constructor of base
classes
Car obj;
return 0;
}
Hierarchical Inheritance: In this type of inheritance, more than one sub class is inherited from a single
base class. i.e. more than one derived class is created from a single base class.
// C++ program to implement
// Hierarchical Inheritance
#include <iostream>
using namespace std;
// base class
class Vehicle
{
public:
Vehicle()
{
cout << "This is a Vehicle" << endl;
}
};
// first sub class
class Car: public Vehicle
{
};
// second sub class
class Bus: public Vehicle
{
};
// main function
int main()
{
// creating object of sub
class will
// invoke the constructor
of base class
Car obj1;
Bus obj2;
return 0;
}
Hybrid (Virtual) Inheritance: Hybrid Inheritance is
implemented by combining more than one type of
inheritance. For example: Combining Hierarchical
inheritance and Multiple Inheritance.
// C++ program for Hybrid Inheritance
#include <iostream>
using namespace std;
// base class
class Vehicle
{
public:
Vehicle()
{
cout << "This is a Vehicle" << endl;
}
};
//base class
class Fare
{
public:
Fare()
{
cout<<"Fare of Vehiclen";
}
};
// first sub class
class Car: public Vehicle
{
};
// second sub class
class Bus: public Vehicle, public Fare
{
};
// main function
int main()
{
// creating object of sub class
will
// invoke the constructor of base
class
Bus obj2;
return 0;
}
Polymorphism in C++
In C++ polymorphism is mainly divided into two types:
•Compile time Polymorphism
•Runtime Polymorphism
Compile time polymorphism: This type of polymorphism is achieved by function overloading or
operator overloading.
•Function Overloading: When there are multiple functions with same name but different
parameters then these functions are said to be overloaded. Functions can be overloaded
by change in number of arguments or/and change in type of arguments.
Rules of Function Overloading
In C++, following function declarations cannot be overloaded.
1) Function declarations that differ only in the return type. For example,
the following program fails in compilation.
2) Member function declarations with the same name and the name
parameter-type-list cannot be overloaded if any of them is a static member
function declaration. For example, following program fails in compilation.
Function Overloading: When there are multiple functions with same name
but different parameters then these functions are said to be overloaded.
Functions can be overloaded by change in number of
arguments or/and change in type of arguments.
// C++ program for function overloading
#include <bits/stdc++.h>
using namespace std;
class Geeks{
public:
// function with 1 int parameter
void func(int x){
cout << "value of x is " << x << endl;
}
// function with same name but 1 double
parameter
void func(double x) {
cout << "value of x is " << x << endl;
}
// function with same name and 2 int
parameters
void func(int x, int y) {
cout << "value of x and y is " << x <<
", " << y << endl;
}
};
int main() {
Geeks obj1;
// Which function is called will
depend on the parameters passed
// The first 'func' is called
obj1.func(7);
// The second 'func' is called
obj1.func(9.132);
// The third 'func' is called
obj1.func(85,64);
return 0;
}
Operator Overloading: Operator overloading is a technique by which
operators used in a programming language are implemented in user-
defined types
// CPP program to illustrate
// Operator Overloading
#include<iostream>
using namespace std;
class Complex {
private:
int real, imag;
public:
Complex(int r = 0, int i =0)
{real = r; imag = i;}
// This is automatically called when '+' is used with
// between two Complex objects
Complex operator + (Complex const &obj) {
Complex res;
res.real = real + obj.real;
res.imag = imag + obj.imag;
return res;
}
void print() { cout << real << " + i" << imag << endl; }};
int main(){
Complex c1(10, 5), c2(2, 4);
Complex c3 = c1 + c2; // An example call to "operator+"
c3.print();}
What is the use of operator overloading?
Operator overloading allows you to redefine the way
operator works for user-defined types only (objects,
structures). It cannot be used for built-in types (int,
float, char etc.). Two operators = and & are already
overloaded by default in C++. For example:
To copy objects of same class, you can directly
use = operator.
Runtime polymorphism: This type of polymorphism is achieved by Function Overriding.
•Function overriding on the other hand occurs when a derived class has a definition for one of the member
functions of the base class. That base function is said to be overridden.
// C++ program for function
overriding
#include <bits/stdc++.h>
using namespace std;
// Base class
class Parent
{
public:
void print()
{
cout << "The Parent print
function was called" << endl;
}
};
// Derived class
class Child : public Parent
{
public:
// definition of a member
function already present in Parent
void print()
{
cout << "The child print
function was called" << endl;
}
};
//main function
int main()
{
//object of parent class
Parent obj1;
//object of child class
Child obj2 = Child();
// obj1 will call the print function
in Parent
obj1.print();
// obj2 will override the print
function in Parent
// and call the print function in
Child
obj2.print();
return 0;
}
Difference between Encapsulation and Abstraction
Encapsulate hides variables or some implementation that may be changed so often in a class to prevent
outsiders access it directly. They must access it via getter and setter methods.
Abstraction is used to hiding something too but in a higher degree(class, interface). Clients use an abstract
class(or interface) do not care about who or which it was, they just need to know what it can do.
Encapsulation: It is the process of hiding the implementation complexity of a specific class from the client that is going to
use it, keep in mind that the "client" may be a program or event the person who wrote the class.
Abstraction: Is usually done to provide polymorphic access to a set of classes. An abstract class cannot be instantiated thus
another class will have to derive from it to create a more concrete representation.
Encapsulation is wrapping, just hiding properties and methods. Encapsulation is used for hide the code and
data in a single unit to protect the data from the outside the world. Class is the best example
of encapsulation.Abstraction on the other hand means showing only the necessary details to the intended user.
Difference between inheritance and polymorphism in c++
The main difference is polymorphism is a specific result of inheritance.Polymorphism is where the method
to be invoked is determined at runtime based on the type of the object. This is a situation that results when you
have one class inheriting from another and overriding a particular method
Polymorphism and Inheritance are major concepts in Object Oriented Programming. The difference
between Polymorphism and Inheritance in OOP is that Polymorphism is a common interface to multiple
forms and Inheritance is to create a new class using properties and methods of an existing class. Both
concepts are widely used in Software Development.
Polymorphism vs Inheritance in OOP
Polymorphism is an ability of an object to behave in multiple ways.
Inheritance is to create a new class using properties and methods
of an existing class.
Usage
Polymorphism is used for objects to call which form of methods at
compile time and runtime.
Inheritance is used for code reusability.
Implementation
Polymorphism is implemented in methods. Inheritance is implemented in classes.
Categories
Polymorphism can be divided into overloading and overriding.
Inheritance can be divided into single-level, multi-level,
hierarchical, hybrid, and multiple inheritance.
Implementing inheritance in C++: For creating a sub-class which is inherited from the base class we have to
follow the below syntax.
Note: A derived class doesn’t inherit access to private data members. However, it does inherit a full parent object, which
contains any private members which that class declares.
class subclass_name : access_mode base_class_name
{ //body of subclass };
Opp concept in c++

Mais conteúdo relacionado

Mais procurados

Conditional Statement in C Language
Conditional Statement in C LanguageConditional Statement in C Language
Conditional Statement in C LanguageShaina Arora
 
Exception Handling in C++
Exception Handling in C++Exception Handling in C++
Exception Handling in C++Deepak Tathe
 
python conditional statement.pptx
python conditional statement.pptxpython conditional statement.pptx
python conditional statement.pptxDolchandra
 
Constructor and destructor in oop
Constructor and destructor in oop Constructor and destructor in oop
Constructor and destructor in oop Samad Qazi
 
Structure of java program diff c- cpp and java
Structure of java program  diff c- cpp and javaStructure of java program  diff c- cpp and java
Structure of java program diff c- cpp and javaMadishetty Prathibha
 
Java Data Types
Java Data TypesJava Data Types
Java Data TypesSpotle.ai
 
Input and Output In C Language
Input and Output In C LanguageInput and Output In C Language
Input and Output In C LanguageAdnan Khan
 
Data Types & Variables in JAVA
Data Types & Variables in JAVAData Types & Variables in JAVA
Data Types & Variables in JAVAAnkita Totala
 
Constructor and Destructor PPT
Constructor and Destructor PPTConstructor and Destructor PPT
Constructor and Destructor PPTShubham Mondal
 
Inheritance in c++
Inheritance in c++Inheritance in c++
Inheritance in c++Vineeta Garg
 
Files in c++ ppt
Files in c++ pptFiles in c++ ppt
Files in c++ pptKumar
 
358 33 powerpoint-slides_6-strings_chapter-6
358 33 powerpoint-slides_6-strings_chapter-6358 33 powerpoint-slides_6-strings_chapter-6
358 33 powerpoint-slides_6-strings_chapter-6sumitbardhan
 

Mais procurados (20)

Conditional Statement in C Language
Conditional Statement in C LanguageConditional Statement in C Language
Conditional Statement in C Language
 
Exception Handling in C++
Exception Handling in C++Exception Handling in C++
Exception Handling in C++
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
python conditional statement.pptx
python conditional statement.pptxpython conditional statement.pptx
python conditional statement.pptx
 
Linux commands
Linux commandsLinux commands
Linux commands
 
Constructor and destructor in oop
Constructor and destructor in oop Constructor and destructor in oop
Constructor and destructor in oop
 
Structure of java program diff c- cpp and java
Structure of java program  diff c- cpp and javaStructure of java program  diff c- cpp and java
Structure of java program diff c- cpp and java
 
Java Data Types
Java Data TypesJava Data Types
Java Data Types
 
Input and Output In C Language
Input and Output In C LanguageInput and Output In C Language
Input and Output In C Language
 
Data Types & Variables in JAVA
Data Types & Variables in JAVAData Types & Variables in JAVA
Data Types & Variables in JAVA
 
File handling in c++
File handling in c++File handling in c++
File handling in c++
 
Constructor and Destructor PPT
Constructor and Destructor PPTConstructor and Destructor PPT
Constructor and Destructor PPT
 
Inheritance in c++
Inheritance in c++Inheritance in c++
Inheritance in c++
 
Files in c++ ppt
Files in c++ pptFiles in c++ ppt
Files in c++ ppt
 
JAVA PROGRAMMING
JAVA PROGRAMMING JAVA PROGRAMMING
JAVA PROGRAMMING
 
Java I/o streams
Java I/o streamsJava I/o streams
Java I/o streams
 
File in C language
File in C languageFile in C language
File in C language
 
polymorphism ppt
polymorphism pptpolymorphism ppt
polymorphism ppt
 
358 33 powerpoint-slides_6-strings_chapter-6
358 33 powerpoint-slides_6-strings_chapter-6358 33 powerpoint-slides_6-strings_chapter-6
358 33 powerpoint-slides_6-strings_chapter-6
 
Break and continue
Break and continueBreak and continue
Break and continue
 

Semelhante a Opp concept in c++

Semelhante a Opp concept in c++ (20)

Introduction to object oriented programming concepts
Introduction to object oriented programming conceptsIntroduction to object oriented programming concepts
Introduction to object oriented programming concepts
 
Php oop (1)
Php oop (1)Php oop (1)
Php oop (1)
 
C++ presentation
C++ presentationC++ presentation
C++ presentation
 
C++ programming introduction
C++ programming introductionC++ programming introduction
C++ programming introduction
 
Ppt of c++ vs c#
Ppt of c++ vs c#Ppt of c++ vs c#
Ppt of c++ vs c#
 
C++ Notes
C++ NotesC++ Notes
C++ Notes
 
Access controlaspecifier and visibilty modes
Access controlaspecifier and visibilty modesAccess controlaspecifier and visibilty modes
Access controlaspecifier and visibilty modes
 
My c++
My c++My c++
My c++
 
OOPs & C++ UNIT 3
OOPs & C++ UNIT 3OOPs & C++ UNIT 3
OOPs & C++ UNIT 3
 
Inheritance
InheritanceInheritance
Inheritance
 
4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT
 
lecture3.pptx
lecture3.pptxlecture3.pptx
lecture3.pptx
 
C++ largest no between three nos
C++ largest no between three nosC++ largest no between three nos
C++ largest no between three nos
 
Inheritance
InheritanceInheritance
Inheritance
 
Lab 4 (1).pdf
Lab 4 (1).pdfLab 4 (1).pdf
Lab 4 (1).pdf
 
Inheritance
InheritanceInheritance
Inheritance
 
C++ classes
C++ classesC++ classes
C++ classes
 
Question and answer Programming
Question and answer ProgrammingQuestion and answer Programming
Question and answer Programming
 
inheritance
inheritanceinheritance
inheritance
 
6 Inheritance
6 Inheritance6 Inheritance
6 Inheritance
 

Último

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Último (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Opp concept in c++

  • 1.
  • 2. Is Opp Different functions Different data type User define data type Builtin data type C++
  • 3. INSERT LOGO HERE Introduction object oriented programming The object-oriented programming (OOP) is a different approach to programming. Object oriented technology supported by C++ is considered the latest technology in software development. It is regarded as the ultimate paradigm for the modelling of information, be that data or logic. . Object oriented programming – As the name suggests uses objects in programming. Object oriented programming aims to implement real world entities like inheritance, hiding, polymorphism etc in programming. The main aim of OOP is to bind together the data and the functions that operates on them so that no other part of code can access this data except that function. to divide complex problems into smaller sets by creating objects is called oop.
  • 4. Advantage of OOPs over Procedure-oriented programming language 1) OOPs makes development and maintenance easier where as in Procedure-oriented programming language it is not easy to manage if code grows as project size grows. 2) OOPs provides data hiding whereas in Procedure-oriented programming language a global data can be accessed from anywhere. igure: Data Representation in Procedure-Oriented Programming 3) OOPs provides ability to simulate real-world event much more effectively. We can provide the solution of real word problem if we are using the Object-Oriented Programming language.
  • 5. Main concept are 2 Class ( blue print ) Object ( real world example ) OOP Basic Concepts
  • 6. C++ Classes and Objects Class: The building block of C++ that leads to Object Oriented programming is a Class. It is a user defined data type, which holds its own data members and member functions, which can be accessed and used by creating an instance of that class. A class is like a blueprint for an object. A class have some properties. 1 A Class is a user defined data-type which has data members and member functions. 2 Data members are the data variables and member functions are the functions used to manipulate these variables and together these data members and member functions defines the properties and behavior of the objects in a Class. Objectis an instance of a Class. When a class is defined, no memory is allocated but when it is instantiated (i.e. an object is created) memory is allocated. Class syntax ========= class class_name{ body of a class }; // it is out of main Object syntax ========= class_name object ; // it is inside of main
  • 7. Inheritance The capability of a class to derive properties and characteristics from another class is called Inheritance In normal terms ENCP is defined as wrapping up of data and information under a single unit. In Object Oriented Programming, Encapsulation is defined as binding together the data and the functions that manipulates them. Abstraction means displaying only essential information and hiding the details. Data abstraction refers to providing only essential information about the data to the outside world, hiding the background details or implementation. Classes It is a user defined data type, which holds its own data members and member functions, which can be accessed and used by creating an instance of that class. A class is like a blueprint for an object. For Example: Consider the Class of Cars. Class ( blue print Data abstrauction Data encapsulation Inheretance Polymorphism The word polymorphism means having many forms. In simple words, we can define polymorphism as the ability of a message to be displayed in more than one form.
  • 8. 1 Abstraction Abstraction using Classes: We can implement Abstraction in C++ using classes. Class helps us to group data members and member functions using available access specifiers. A Class can decide which data member will be visible to outside world and which is not. • Members declared as public in a class, can be accessed from anywhere in the program. • Members declared as private in a class, can be accessed only from within the class. They are not allowed to be accessed from any part of code outside the class.
  • 9. Example : #include <iostream> using namespace std; class car { private: int a, b; public: // method to set values of // private members void set(int x, int y) { a = x; b = y; } void display() { cout<<"a = " <<a << endl; cout<<"b = " << b << endl; } }; int main() { car obj; obj.set(10, 20); obj.display(); return 0; }
  • 10. 2 Encapsulation Encapsulation also lead to data abstraction or hiding. As using encapsulation also hides the data. In the above example the data of any of the section like sales, finance or accounts is hidden from any other section.  Role of access specifiers in encapsulation As we have seen in above example, access specifiers plays an important role in implementing encapsulation in C++. The process of implementing encapsulation can be sub-divided into two steps: The data members should be labeled as private using the private access specifiers The member function which manipulates the data members should be labeled as public using the public access specifier  In C++ encapsulation can be implemented using Class and access modifiers.
  • 11. // c++ program to explain // Encapsulation #include<iostream> using namespace std; class Encapsulation{ private: // data hidden from outside world int x; public: // function to set value of // variable x void set(int a) { x =a; } // function to return value of // variable x int get() { return x; } }; // main function int main() { Encapsulation obj; obj.set(5); cout<<obj.get(); return 0; }
  • 12. Sub Class: The class that inherits properties from another class is called Sub class or Derived Class. Super Class:The class whose properties are inherited by sub class is called Base Class or Super class. The article is divided into following subtopics: 1 Why and when to use inheritance? 2 Modes of Inheritance 3 Types of Inheritance 1 Why and when to use inheritance? Consider a group of vehicles. You need to create classes for Bus, Car and Truck. The methods fuelAmount(), capacity(), applyBrakes() will be same for all of the three classes. If we create these classes avoiding inheritance then we have to write all of these functions in each of the three classes as shown in below figure: This is inheritance in class
  • 13. Implementing inheritance in C++: For creating a sub-class which is inherited from the base class we have to follow the below syntax. Note: A derived class doesn’t inherit access to private data members. However, it does inherit a full parent object, which contains any private members which that class declares. class subclass_name : access_mode base_class_name { //body of subclass };
  • 14. Modes of Inheritance 1.Public mode: If we derive a sub class from a public base class. Then the public member of the base class will become public in the derived class and protected members of the base class will become protected in derived class. 2.Protected mode: If we derive a sub class from a Protected base class. Then both public member and protected members of the base class will become protected in derived class. 3.Private mode: If we derive a sub class from a Private base class. Then both public member and protected members of the base class will become Private in derived class. Note : The private members in the base class cannot be directly accessed in the derived class, while protected members can be directly accessed. For example, Classes B, C and D all contain the variables x, y and z in below example. It is just question of access. // C++ Implementation to show that a derived class // doesn’t inherit access to private data members. // However, it does inherit a full parent object class A { public: int x; protected: int y; private: int z; }; class B : public A { // x is public // y is protected // z is not accessible from B }; class C : protected A { // x is protected // y is protected // z is not accessible from C }; class D : private A // 'private' is default for classes { // x is private // y is private // z is not accessible from D };
  • 15. Types of Inheritance in C++ Single Inheritance: In single inheritance, a class is allowed to inherit from only one class. i.e. one sub class is inherited by one base class only. class subclass_name : access_mode base_class { //body of subclass }; // C++ program to explain // Single inheritance #include <iostream> using namespace std; // base class class Vehicle { public: Vehicle() { cout << "This is a Vehicle" << endl; } }; // sub class derived from two base classes class Car: public Vehicle{ }; // main function int main() { // creating object of sub class will // invoke the constructor of base classes Car obj; return 0; }
  • 16. Multiple Inheritance: Multiple Inheritance is a feature of C++ where a class can inherit from more than one classes. i.e one sub class is inherited from more than one base classes. Syntax: class subclass_name : access_mode base_class1, access_mode base_class2, .... { //body of subclass }; // C++ program to explain // multiple inheritance #include <iostream> using namespace std; // first base class class Vehicle { public: Vehicle() { cout << "This is a Vehicle" << endl; } }; // second base class class FourWheeler { public: FourWheeler() { cout << "This is a 4 wheeler Vehicle" << endl; } }; // sub class derived from two base classes class Car: public Vehicle, public FourWheeler { }; // main function int main() { // creating object of sub class will // invoke the constructor of base classes Car obj; return 0; }
  • 17. Multilevel Inheritance: In this type of inheritance, a derived class is created from another derived class. // C++ program to implement // Multilevel Inheritance #include <iostream> using namespace std; // base class class Vehicle { public: Vehicle() { cout << "This is a Vehicle" << endl; } }; class fourWheeler: public Vehicle { public: fourWheeler() { cout<<"Objects with 4 wheels are vehicles"<<endl; } }; // sub class derived from two base classes class Car: public fourWheeler{ public: car() { cout<<"Car has 4 Wheels"<<endl; } }; // main function int main() { //creating object of sub class will //invoke the constructor of base classes Car obj; return 0; }
  • 18. Hierarchical Inheritance: In this type of inheritance, more than one sub class is inherited from a single base class. i.e. more than one derived class is created from a single base class. // C++ program to implement // Hierarchical Inheritance #include <iostream> using namespace std; // base class class Vehicle { public: Vehicle() { cout << "This is a Vehicle" << endl; } }; // first sub class class Car: public Vehicle { }; // second sub class class Bus: public Vehicle { }; // main function int main() { // creating object of sub class will // invoke the constructor of base class Car obj1; Bus obj2; return 0; }
  • 19. Hybrid (Virtual) Inheritance: Hybrid Inheritance is implemented by combining more than one type of inheritance. For example: Combining Hierarchical inheritance and Multiple Inheritance. // C++ program for Hybrid Inheritance #include <iostream> using namespace std; // base class class Vehicle { public: Vehicle() { cout << "This is a Vehicle" << endl; } }; //base class class Fare { public: Fare() { cout<<"Fare of Vehiclen"; } }; // first sub class class Car: public Vehicle { }; // second sub class class Bus: public Vehicle, public Fare { }; // main function int main() { // creating object of sub class will // invoke the constructor of base class Bus obj2; return 0; }
  • 20. Polymorphism in C++ In C++ polymorphism is mainly divided into two types: •Compile time Polymorphism •Runtime Polymorphism Compile time polymorphism: This type of polymorphism is achieved by function overloading or operator overloading. •Function Overloading: When there are multiple functions with same name but different parameters then these functions are said to be overloaded. Functions can be overloaded by change in number of arguments or/and change in type of arguments. Rules of Function Overloading In C++, following function declarations cannot be overloaded. 1) Function declarations that differ only in the return type. For example, the following program fails in compilation. 2) Member function declarations with the same name and the name parameter-type-list cannot be overloaded if any of them is a static member function declaration. For example, following program fails in compilation.
  • 21. Function Overloading: When there are multiple functions with same name but different parameters then these functions are said to be overloaded. Functions can be overloaded by change in number of arguments or/and change in type of arguments. // C++ program for function overloading #include <bits/stdc++.h> using namespace std; class Geeks{ public: // function with 1 int parameter void func(int x){ cout << "value of x is " << x << endl; } // function with same name but 1 double parameter void func(double x) { cout << "value of x is " << x << endl; } // function with same name and 2 int parameters void func(int x, int y) { cout << "value of x and y is " << x << ", " << y << endl; } }; int main() { Geeks obj1; // Which function is called will depend on the parameters passed // The first 'func' is called obj1.func(7); // The second 'func' is called obj1.func(9.132); // The third 'func' is called obj1.func(85,64); return 0; }
  • 22. Operator Overloading: Operator overloading is a technique by which operators used in a programming language are implemented in user- defined types // CPP program to illustrate // Operator Overloading #include<iostream> using namespace std; class Complex { private: int real, imag; public: Complex(int r = 0, int i =0) {real = r; imag = i;} // This is automatically called when '+' is used with // between two Complex objects Complex operator + (Complex const &obj) { Complex res; res.real = real + obj.real; res.imag = imag + obj.imag; return res; } void print() { cout << real << " + i" << imag << endl; }}; int main(){ Complex c1(10, 5), c2(2, 4); Complex c3 = c1 + c2; // An example call to "operator+" c3.print();} What is the use of operator overloading? Operator overloading allows you to redefine the way operator works for user-defined types only (objects, structures). It cannot be used for built-in types (int, float, char etc.). Two operators = and & are already overloaded by default in C++. For example: To copy objects of same class, you can directly use = operator.
  • 23. Runtime polymorphism: This type of polymorphism is achieved by Function Overriding. •Function overriding on the other hand occurs when a derived class has a definition for one of the member functions of the base class. That base function is said to be overridden. // C++ program for function overriding #include <bits/stdc++.h> using namespace std; // Base class class Parent { public: void print() { cout << "The Parent print function was called" << endl; } }; // Derived class class Child : public Parent { public: // definition of a member function already present in Parent void print() { cout << "The child print function was called" << endl; } }; //main function int main() { //object of parent class Parent obj1; //object of child class Child obj2 = Child(); // obj1 will call the print function in Parent obj1.print(); // obj2 will override the print function in Parent // and call the print function in Child obj2.print(); return 0; }
  • 24. Difference between Encapsulation and Abstraction Encapsulate hides variables or some implementation that may be changed so often in a class to prevent outsiders access it directly. They must access it via getter and setter methods. Abstraction is used to hiding something too but in a higher degree(class, interface). Clients use an abstract class(or interface) do not care about who or which it was, they just need to know what it can do. Encapsulation: It is the process of hiding the implementation complexity of a specific class from the client that is going to use it, keep in mind that the "client" may be a program or event the person who wrote the class. Abstraction: Is usually done to provide polymorphic access to a set of classes. An abstract class cannot be instantiated thus another class will have to derive from it to create a more concrete representation. Encapsulation is wrapping, just hiding properties and methods. Encapsulation is used for hide the code and data in a single unit to protect the data from the outside the world. Class is the best example of encapsulation.Abstraction on the other hand means showing only the necessary details to the intended user.
  • 25.
  • 26. Difference between inheritance and polymorphism in c++ The main difference is polymorphism is a specific result of inheritance.Polymorphism is where the method to be invoked is determined at runtime based on the type of the object. This is a situation that results when you have one class inheriting from another and overriding a particular method Polymorphism and Inheritance are major concepts in Object Oriented Programming. The difference between Polymorphism and Inheritance in OOP is that Polymorphism is a common interface to multiple forms and Inheritance is to create a new class using properties and methods of an existing class. Both concepts are widely used in Software Development. Polymorphism vs Inheritance in OOP Polymorphism is an ability of an object to behave in multiple ways. Inheritance is to create a new class using properties and methods of an existing class. Usage Polymorphism is used for objects to call which form of methods at compile time and runtime. Inheritance is used for code reusability. Implementation Polymorphism is implemented in methods. Inheritance is implemented in classes. Categories Polymorphism can be divided into overloading and overriding. Inheritance can be divided into single-level, multi-level, hierarchical, hybrid, and multiple inheritance.
  • 27. Implementing inheritance in C++: For creating a sub-class which is inherited from the base class we have to follow the below syntax. Note: A derived class doesn’t inherit access to private data members. However, it does inherit a full parent object, which contains any private members which that class declares. class subclass_name : access_mode base_class_name { //body of subclass };

Notas do Editor

  1. You can safely remove this slide. This slide design was provided by SlideModel.com – You can download more templates, shapes and elements for PowerPoint from http://slidemodel.com