Constructors in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Constructors in C++ Notes | Basic Computer Engineering | RGPV BTech First Year


Constructors in C++

Constructor C++ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг Special Member Function рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА Class рдХрд╛ Object Create рд╣реЛрддреЗ рд╣реА Compiler Automatically Execute рдХрд░рддрд╛ рд╣реИред Constructor рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп Object рдХреЗ Data Members рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ (Initial) Values рджреЗрдирд╛ рддрдерд╛ Object рдХреЛ рдПрдХ Valid State рдореЗрдВ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред

Object Oriented Programming (OOP) рдореЗрдВ Constructor рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ Object Initialization рд╕реНрд╡рддрдГ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ Programmer рдХреЛ рдЕрд▓рдЧ рд╕реЗ Initialization Function Call рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд░рд╣рддреАред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ Constructor рдЖрдзреБрдирд┐рдХ Software Development рдХрд╛ рдПрдХ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг Concept рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

Constructor = Automatic Initialization of Object

Introduction to Constructor

рдЬрдм рдХрд┐рд╕реА Class рдХрд╛ рдирдпрд╛ Object рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рдЙрд╕рдХреЗ рд╕рднреА Data Members рдХреЛ рдЙрдЪрд┐рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди (Initial Values) рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ Variables Initialize рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдБ рддреЛ рдЙрдирдореЗрдВ Garbage Values Store рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ Program рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рджреЗ рд╕рдХрддрд╛ рд╣реИред Constructor рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ Object рдмрдирдиреЗ рдХреЗ рд╕рд╛рде рд╣реА рдЖрд╡рд╢реНрдпрдХ Initialization рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдХрд┐рд╕реА Student Class рдореЗрдВ Roll Number, Name рддрдерд╛ Marks рдЬреИрд╕реЗ Members рд╣реЛрдВ, рддреЛ Constructor Object Create рд╣реЛрддреЗ рд╕рдордп рдЗрди рд╕рднреА Variables рдХреЛ рдЙрдЪрд┐рдд Values рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред


Definition of Constructor

Constructor рдПрдХ Special Member Function рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо Class рдХреЗ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдХреЛрдИ Return Type рдирд╣реАрдВ рд╣реЛрддрд╛ рддрдерд╛ рдпрд╣ Object Create рд╣реЛрддреЗ рд╣реА рд╕реНрд╡рддрдГ Execute рд╣реЛрдХрд░ Object рдХреЗ Data Members рдХреЛ Initialize рдХрд░рддрд╛ рд╣реИред


Need of Constructor

  • Object рдХреЛ Automatically Initialize рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Garbage Values рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред
  • Program Reliability рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Readable рддрдерд╛ Maintainable Code рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред
  • Programming Errors рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Resources рддрдерд╛ Memory Initialize рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Large Scale Software Development рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Object Creation рдХреЛ рд╕рд░рд▓ рдПрд╡рдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

Characteristics of Constructor

  • Constructor рдХрд╛ рдирд╛рдо Class рдХреЗ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИред
  • рдЗрд╕рдХрд╛ рдХреЛрдИ Return Type рдирд╣реАрдВ рд╣реЛрддрд╛ред
  • Compiler рдЗрд╕реЗ Automatically Call рдХрд░рддрд╛ рд╣реИред
  • Object Create рд╣реЛрддреЗ рд╣реА Execute рд╣реЛрддрд╛ рд╣реИред
  • Constructor Overloading рд╕рдВрднрд╡ рд╣реИред
  • Constructor Virtual рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред
  • Constructor Inherited рдирд╣реАрдВ рд╣реЛрддрд╛ред
  • рдПрдХ Class рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Constructors рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

Rules for Creating Constructor

Rule Description
Same Name Constructor рдХрд╛ рдирд╛рдо Class рдХреЗ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
No Return Type Constructor рдХреЗ рд╕рд╛рде рдХреЛрдИ Return Type рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ред
Automatic Execution Object рдмрдирддреЗ рд╣реА рд╕реНрд╡рддрдГ Execute рд╣реЛрддрд╛ рд╣реИред
Can Accept Parameters Constructor Parameters рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
Usually Public Constructor рд╕рд╛рдорд╛рдиреНрдпрддрдГ Public Section рдореЗрдВ Define рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Syntax of Constructor

class Student { public: Student() { cout << "Constructor Executed"; } };

рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ Student() Constructor рд╣реИред рдЬреИрд╕реЗ рд╣реА Student Class рдХрд╛ Object рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рд╕реНрд╡рддрдГ Execute рд╣реЛрдЧрд╛ред


Working of Constructor

рдЬрдм Program рдореЗрдВ Object Create рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм Compiler рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ Object рдХреЗ рд▓рд┐рдП Memory Allocate рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж Constructor Automatically Execute рд╣реЛрдХрд░ Object рдХреЗ Data Members рдХреЛ Initialize рдХрд░рддрд╛ рд╣реИред Initialization рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж Object Program рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

  1. Class Define рд╣реЛрддреА рд╣реИред
  2. Object Create рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  3. Memory Allocate рд╣реЛрддреА рд╣реИред
  4. Constructor Automatically Execute рд╣реЛрддрд╛ рд╣реИред
  5. Data Members Initialize рд╣реЛрддреЗ рд╣реИрдВред
  6. Object Ready рд╣реЛрдХрд░ Program рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Types of Constructors

C++ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ Constructors рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ Constructor рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп Object рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ Initialize рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред

Constructor Type Purpose
Default Constructor Object рдХреЛ Default Values рд╕реЗ Initialize рдХрд░рддрд╛ рд╣реИред
Parameterized Constructor User рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ Values рд╕реЗ Object Initialize рдХрд░рддрд╛ рд╣реИред
Copy Constructor рдПрдХ Object рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рджреВрд╕рд░рд╛ Object Create рдХрд░рддрд╛ рд╣реИред
Dynamic Constructor Runtime рдореЗрдВ Dynamic Memory Allocate рдХрд░рддрд╛ рд╣реИред

Default Constructor

Default Constructor рдРрд╕рд╛ Constructor рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ Parameter рдирд╣реАрдВ рд╣реЛрддрд╛ред рдпрджрд┐ Programmer Constructor Define рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ Compiler рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрдбрд╝рдиреЗ рдкрд░ Default Constructor рдЙрдкрд▓рдмреНрдз рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реИред

class Student { public: Student() { cout << "Default Constructor Called"; } }; Student s1;

рдКрдкрд░ рджрд┐рдП рдЧрдП Program рдореЗрдВ рдЬреИрд╕реЗ рд╣реА s1 Object Create рд╣реЛрдЧрд╛, Default Constructor Automatically Execute рд╣реЛрдЧрд╛ред


Parameterized Constructor

Parameterized Constructor рдореЗрдВ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Parameters рд╣реЛрддреЗ рд╣реИрдВред Object Create рдХрд░рддреЗ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ Values Constructor рдХреЛ Pass рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ Object рдЕрд▓рдЧ-рдЕрд▓рдЧ Data рдХреЗ рд╕рд╛рде Initialize рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

class Student { public: Student(int r, string n) { rollNo = r; name = n; } }; Student s1(101,"Rahul");

Difference Between Default Constructor and Parameterized Constructor

Default Constructor Parameterized Constructor
Does Not Accept Parameters. Accepts One or More Parameters.
Default Initialization. User Defined Initialization.
Simple Object Creation. Flexible Object Creation.
No Arguments Required. Arguments Required.

Advantages of Using Constructors

  • Automatic Object Initialization.
  • Improves Code Reliability.
  • Reduces Programming Errors.
  • Makes Programs More Secure.
  • Supports Object Oriented Programming.
  • Improves Code Readability.
  • Easy Resource Initialization.
  • Supports Reusable Code.

Real Life Examples of Constructors

Class Constructor Initializes
Student Roll Number, Name, Marks
BankAccount Account Number, Balance
Employee Employee ID, Name
Product Product ID, Price

Copy Constructor

Copy Constructor рдРрд╕рд╛ Constructor рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдкрд╣рд▓реЗ рд╕реЗ рдмрдиреЗ рд╣реБрдП Object рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдирдпрд╛ Object Create рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдПрдХ Object рдХреА Values рджреВрд╕рд░реЗ Object рдореЗрдВ Copy рдХреА рдЬрд╛рддреА рд╣реИрдВ рддрдм Copy Constructor Automatically Execute рд╣реЛрддрд╛ рд╣реИред

class Student { public: Student(Student &obj) { // Copy Data Members } };

Dynamic Constructor

рдЬрдм Constructor рдХреЗ рдЕрдВрджрд░ Dynamic Memory Allocation рдХреЗ рд▓рд┐рдП new Operator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рдЙрд╕реЗ Dynamic Constructor рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Runtime рдкрд░ Memory Allocate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

class Student { int *marks; public: Student() { marks = new int; } };

Constructor Overloading

рдпрджрд┐ рдХрд┐рд╕реА Class рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ Parameters рд╡рд╛рд▓реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Constructors рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ Constructor Overloading рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред Compiler Parameters рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдЪрд┐рдд Constructor рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред

class Student { public: Student(); Student(int r); Student(int r,string n); };

Constructor vs Normal Function

Constructor Normal Function
Automatically Called Explicitly Called
No Return Type May Return Value
Same Name as Class Any Valid Name
Initializes Object Performs Operations

Constructor vs Destructor

Constructor Destructor
Called During Object Creation Called During Object Destruction
Initializes Object Releases Resources
Can Be Overloaded Cannot Be Overloaded
Multiple Constructors Possible Only One Destructor

Complete C++ Program

#include<iostream> using namespace std; class Student { public: Student() { cout << "Constructor Executed"; } }; int main() { Student s1; return 0; }

Applications of Constructor

  • Bank Management System.
  • Hospital Management Software.
  • Library Management System.
  • Student Management System.
  • Inventory Software.
  • ERP Applications.
  • Game Development.
  • Desktop Applications.
  • Embedded Systems.
  • Enterprise Software.

Advantages of Constructor

  • Automatic Initialization.
  • Reduces Programming Errors.
  • Improves Software Reliability.
  • Supports Code Reusability.
  • Easy Object Creation.
  • Supports OOP Concepts.
  • Improves Readability.
  • Ensures Valid Object State.

Limitations of Constructor

  • Cannot Have Return Type.
  • Cannot Be Virtual.
  • Cannot Be Inherited.
  • Improper Initialization May Cause Bugs.
  • Complex Constructor Logic Reduces Readability.

Industrial Importance

рдЖрдЬ рд▓рдЧрднрдЧ рд╕рднреА рдЖрдзреБрдирд┐рдХ Programming Languages рдЬреИрд╕реЗ C++, Java, C# рддрдерд╛ Python Object Initialization рдХреЗ рд▓рд┐рдП Constructor рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред Banking Software, ERP Systems, Mobile Applications, Embedded Systems рддрдерд╛ Enterprise Applications рдореЗрдВ Constructors рдХрд╛ рдЙрдкрдпреЛрдЧ Objects рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ (Initial State) рдореЗрдВ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


Viva Questions

  1. What is a Constructor?
  2. Why is Constructor used?
  3. What is a Default Constructor?
  4. Explain Parameterized Constructor.
  5. What is Copy Constructor?
  6. What is Dynamic Constructor?
  7. What is Constructor Overloading?
  8. Can Constructor have a Return Type?
  9. Differentiate Constructor and Destructor.
  10. Differentiate Constructor and Normal Function.

Exam Oriented Important Questions

  1. Define Constructor with suitable example.
  2. Explain different types of Constructors.
  3. Write a C++ Program using Default Constructor.
  4. Explain Parameterized Constructor with example.
  5. Explain Copy Constructor.
  6. Explain Constructor Overloading.
  7. Differentiate Constructor and Destructor.
  8. Write short note on Dynamic Constructor.
  9. Explain advantages of Constructor.
  10. Discuss applications of Constructor.

Conclusion

Constructor C++ рдХрд╛ рдПрдХ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг Special Member Function рд╣реИ рдЬреЛ Object Create рд╣реЛрддреЗ рд╣реА Automatically Execute рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп Object рдХреЛ рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рд╕реЗ Initialize рдХрд░рдирд╛ рддрдерд╛ рдЙрд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реИред Default Constructor, Parameterized Constructor, Copy Constructor рддрдерд╛ Constructor Overloading рдЬреИрд╕реЗ Concepts Object Oriented Programming рдХреА рдордЬрдмреВрдд рдиреАрдВрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП Constructors рдХрд╛ рдЕрдзреНрдпрдпрди рдкреНрд░рддреНрдпреЗрдХ C++ Programmer рддрдерд╛ RGPV B.Tech рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рдЖрд╡рд╢реНрдпрдХ рд╣реИред

Related Articles

Manipulators in C++ Notes | endl, setw, setprecision, setfill | Basic Computer Engineering | RGPV BTech First Year

0...

Read More тЖТ

Type Conversion in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Type Co...

Read More тЖТ

Assignment Operator in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Assignm...

Read More тЖТ

Copy Constructor in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Copy Co...

Read More тЖТ

this Pointer in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

this Po...

Read More тЖТ