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 рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
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
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ 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 рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- Class Define рд╣реЛрддреА рд╣реИред
- Object Create рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- Memory Allocate рд╣реЛрддреА рд╣реИред
- Constructor Automatically Execute рд╣реЛрддрд╛ рд╣реИред
- Data Members Initialize рд╣реЛрддреЗ рд╣реИрдВред
- 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 рдЙрдкрд▓рдмреНрдз рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реИред
рдКрдкрд░ рджрд┐рдП рдЧрдП Program рдореЗрдВ рдЬреИрд╕реЗ рд╣реА s1 Object Create рд╣реЛрдЧрд╛, Default Constructor Automatically Execute рд╣реЛрдЧрд╛ред
Parameterized Constructor
Parameterized Constructor рдореЗрдВ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Parameters рд╣реЛрддреЗ рд╣реИрдВред Object Create рдХрд░рддреЗ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ Values Constructor рдХреЛ Pass рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ Object рдЕрд▓рдЧ-рдЕрд▓рдЧ Data рдХреЗ рд╕рд╛рде Initialize рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
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 рд╣реЛрддрд╛ рд╣реИред
Dynamic Constructor
рдЬрдм Constructor рдХреЗ рдЕрдВрджрд░ Dynamic Memory Allocation рдХреЗ рд▓рд┐рдП new Operator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рдЙрд╕реЗ Dynamic Constructor рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Runtime рдкрд░ Memory Allocate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Constructor Overloading
рдпрджрд┐ рдХрд┐рд╕реА Class рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ Parameters рд╡рд╛рд▓реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Constructors рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ Constructor Overloading рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред Compiler Parameters рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдЪрд┐рдд Constructor рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
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
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
- What is a Constructor?
- Why is Constructor used?
- What is a Default Constructor?
- Explain Parameterized Constructor.
- What is Copy Constructor?
- What is Dynamic Constructor?
- What is Constructor Overloading?
- Can Constructor have a Return Type?
- Differentiate Constructor and Destructor.
- Differentiate Constructor and Normal Function.
Exam Oriented Important Questions
- Define Constructor with suitable example.
- Explain different types of Constructors.
- Write a C++ Program using Default Constructor.
- Explain Parameterized Constructor with example.
- Explain Copy Constructor.
- Explain Constructor Overloading.
- Differentiate Constructor and Destructor.
- Write short note on Dynamic Constructor.
- Explain advantages of Constructor.
- 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 тЖТ