Pointers to Objects in C++ Notes | Object Pointer, Accessing Members using Pointer & Examples | Basic Computer Engineering | RGPV BTech First Year

Pointers to Objects in C++ Notes | Object Pointer, Accessing Members using Pointer & Examples | Basic Computer Engineering | RGPV BTech First Year


Pointers to Objects in C++

Pointer to Object C++ का एक महत्वपूर्ण Concept है जिसमें Pointer Variable किसी Object का Address Store करता है। Object Pointer की सहायता से Object के Data Members तथा Member Functions को आसानी से Access किया जा सकता है। Object Pointer विशेष रूप से Dynamic Memory Allocation, Object Passing तथा Large Applications में Memory Management के लिए उपयोग किया जाता है।

C++ में Object Pointer के माध्यम से Object के Members को Access करने के लिए Arrow Operator (->) का उपयोग किया जाता है। यह Operator Pointer द्वारा Point किए जा रहे Object के Data Members तथा Member Functions तक पहुँच प्रदान करता है।

RGPV B.Tech First Year के Basic Computer Engineering Subject में Pointers to Objects एक महत्वपूर्ण Topic है। University Examination, Practical तथा Viva में Object Pointer, Arrow Operator, Dynamic Objects तथा Object Access से संबंधित प्रश्न नियमित रूप से पूछे जाते हैं।

Object



Object Address



Object Pointer



Access Members using ->

Introduction to Pointer to Object

Object Oriented Programming में Objects Memory में Store होते हैं। यदि किसी Object का Address Pointer Variable में Store कर लिया जाए, तो उसी Pointer के माध्यम से Object के सभी Members को Access किया जा सकता है।

Object Pointer का उपयोग विशेष रूप से तब किया जाता है जब Objects Dynamic रूप से Create किए जाते हैं अथवा Function में Object का Address Pass करना हो।


What is Pointer to Object?

Pointer to Object ऐसा Pointer Variable होता है जो किसी Class के Object का Address Store करता है। Pointer Variable का Data Type उसी Class का नाम होता है जिसके Object का Address Store किया जा रहा है।

Student s; Student *ptr = &s;

ऊपर दिए गए उदाहरण में ptr एक Object Pointer है जो Student Class के Object s का Address Store करता है।


Need of Pointer to Object

जब Object का Address किसी Function में भेजना हो, Dynamic Object Create करना हो अथवा बड़े Objects को Efficient तरीके से Handle करना हो, तब Object Pointer का उपयोग किया जाता है।

  • Object का Address Store करने के लिए।
  • Dynamic Objects Create करने के लिए।
  • Function में Object का Address Pass करने के लिए।
  • Memory की Efficient Utilization के लिए।
  • Large Objects को Copy किए बिना Access करने के लिए।
  • Dynamic Memory Allocation के साथ कार्य करने के लिए।
  • Professional Object Oriented Programming में Efficient Object Management के लिए।

Advantages of Pointer to Object

Advantage Description
Efficient Memory Usage Object Copy किए बिना उसका Address उपयोग किया जाता है।
Fast Processing Large Objects पर तेज़ी से कार्य किया जा सकता है।
Dynamic Objects Run Time पर Objects Create एवं Delete किए जा सकते हैं।
Function Passing Object का Address Function में आसानी से Pass किया जा सकता है।
Better Performance Memory एवं Execution Time दोनों में सुधार होता है।

Characteristics of Pointer to Object

Pointer to Object की कई महत्वपूर्ण विशेषताएँ (Characteristics) होती हैं जो इसे सामान्य Pointer से अलग बनाती हैं। यह किसी Class के Object का Address Store करता है तथा उसी Object के Members को Access करने की सुविधा प्रदान करता है।

  • यह किसी Object का Address Store करता है।
  • Pointer का Data Type उसी Class का होता है जिसके Object को Point किया जा रहा हो।
  • Object के Data Members तथा Member Functions को Access कर सकता है।
  • Arrow Operator (->) का उपयोग करके Members Access किए जाते हैं।
  • Dynamic Memory Allocation के साथ आसानी से कार्य करता है।
  • Large Objects को Copy किए बिना Efficient तरीके से उपयोग किया जा सकता है।
  • Function Arguments तथा Return Values में उपयोगी होता है।

Declaration of Object Pointer

Object Pointer Declare करने के लिए Pointer का Data Type उसी Class का नाम रखा जाता है जिसके Object का Address Store करना हो।

ClassName *pointerName;

उदाहरण:

Student *ptr;

ऊपर दिए गए उदाहरण में ptr, Student Class का Object Pointer है।


Initialization of Object Pointer

Object Pointer को किसी Object के Address द्वारा Initialize किया जाता है। इसके लिए Address Operator (&) का उपयोग किया जाता है।

Student s; Student *ptr = &s;

यहाँ ptr Variable, Object s का Address Store करता है।


Accessing Object Members using Pointer

Object Pointer द्वारा Object के Members को Access करने के लिए Arrow Operator (->) का उपयोग किया जाता है। यह Operator Pointer को Automatically Dereference करके Object के Member तक पहुँचता है।

ptr->display(); ptr->roll = 101;

ऊपर दिए गए उदाहरण में display() Function तथा roll Data Member को Object Pointer द्वारा Access किया गया है।


Example of Object Pointer

#include<iostream> using namespace std; class Student { public: int roll; void display() { cout << roll; } }; int main() { Student s; Student *ptr; ptr = &s; ptr->roll = 101; ptr->display(); return 0; }

Output

101

इस Program में ptr Object s का Address Store करता है। Arrow Operator (->) द्वारा Object के Data Member तथा Member Function दोनों को Access किया गया है।


Working of Object Pointer

Object Created



Address Stored



Object Pointer



Arrow Operator (->)



Access Data Members & Member Functions

Difference between (.) Operator and (->) Operator

C++ में Object के Members को Access करने के लिए Dot Operator (.) तथा Arrow Operator (->) दोनों का उपयोग किया जाता है। Dot Operator सीधे Object के साथ उपयोग होता है, जबकि Arrow Operator Object Pointer के साथ उपयोग किया जाता है।

Dot Operator (.) Arrow Operator (->)
सीधे Object के साथ उपयोग किया जाता है। Object Pointer के साथ उपयोग किया जाता है।
Object Variable आवश्यक होता है। Pointer Variable आवश्यक होता है।
Syntax: object.member Syntax: pointer->member
Memory Address की आवश्यकता नहीं होती। Pointer Object के Address को Refer करता है।
Static Objects के लिए अधिक उपयोग होता है। Dynamic Objects के लिए अधिक उपयोग होता है।

Object Pointer with Dynamic Memory Allocation

जब Object को Run Time पर Create करना हो, तब new Operator का उपयोग करके Dynamic Object बनाया जाता है। इस स्थिति में Object Heap Memory में Store होता है तथा उसका Address Object Pointer में रखा जाता है।

#include<iostream> using namespace std; class Student { public: void display() { cout << "Dynamic Object"; } }; int main() { Student *ptr = new Student; ptr->display(); delete ptr; return 0; }

Output

Dynamic Object

ऊपर दिए गए Program में new Operator द्वारा Heap Memory में Object Create किया गया है तथा delete द्वारा Memory Release की गई है।


Array of Object Pointers

यदि अनेक Objects के Addresses Store करने हों, तो Object Pointer का Array बनाया जाता है। Array का प्रत्येक Element किसी Object का Address Store करता है।

Student s1, s2, s3; Student *ptr[3]; ptr[0] = &s1; ptr[1] = &s2; ptr[2] = &s3;

यह Technique बड़ी Applications में Multiple Objects को Efficient तरीके से Manage करने के लिए उपयोगी होती है।


Passing Object Pointer to Function

किसी Object की पूरी Copy भेजने के बजाय उसका Address Function में Pass करना अधिक Efficient होता है। इससे Memory की बचत होती है तथा Large Objects को तेजी से Process किया जा सकता है।

void display(Student *ptr) { ptr->show(); }

ऊपर दिए गए उदाहरण में Function को Object का Address भेजा गया है तथा Arrow Operator द्वारा Member Function Call किया गया है।


Returning Object Pointer from Function

कई परिस्थितियों में Function किसी Object का Address Return करता है। Returned Address को Object Pointer में Store करके Object को Access किया जाता है।

Student* createObject() { Student *ptr = new Student; return ptr; }

ऊपर दिए गए उदाहरण में Function Heap Memory में Object Create करता है तथा उसका Address Return करता है। Program समाप्त होने से पहले Returned Pointer की Memory को delete द्वारा Release करना आवश्यक होता है।


Advantages of Pointer to Object

Pointer to Object का उपयोग Object Oriented Programming में Memory Management तथा Efficient Programming के लिए किया जाता है। Object Pointer बड़े Objects को Copy किए बिना Access करने की सुविधा प्रदान करता है जिससे Program की Performance बेहतर होती है।

  • Object Copy किए बिना उसका Address उपयोग किया जा सकता है।
  • Memory की बचत होती है।
  • Large Objects को Efficient तरीके से Handle किया जा सकता है।
  • Dynamic Objects Create करना आसान हो जाता है।
  • Function में Object का Address Pass करना संभव होता है।
  • Execution Speed बेहतर होती है।
  • Professional Software Development में Memory Management आसान हो जाता है।

Limitations of Pointer to Object

यद्यपि Object Pointer अत्यंत उपयोगी है, लेकिन गलत उपयोग Program में कई समस्याएँ उत्पन्न कर सकता है।

  • गलत Address Store होने पर Program Crash हो सकता है।
  • Dangling Pointer की समस्या उत्पन्न हो सकती है।
  • Dynamic Objects की Memory Release न करने पर Memory Leak हो सकता है।
  • Pointer Handling Beginners के लिए कठिन हो सकती है।
  • Null Pointer को Dereference करने पर Runtime Error हो सकता है।
  • Improper Pointer Management से Program Unstable हो सकता है।

Best Practices for Object Pointer

  • Pointer को Declare करते समय NULL अथवा nullptr से Initialize करें।
  • Dynamic Object उपयोग करने के बाद हमेशा delete द्वारा Memory Release करें।
  • Released Pointer को पुनः NULL अथवा nullptr Assign करें।
  • Object Members को Access करने के लिए हमेशा -> Operator का उपयोग करें।
  • Large Objects को Function में Pass करते समय Object Pointer का उपयोग करें।
  • Invalid Memory Address को कभी Access न करें।
  • Readable तथा Maintainable Code लिखने का प्रयास करें।

Applications of Pointer to Object

Application Purpose
Dynamic Objects Run Time पर Objects Create करने के लिए।
Linked List Nodes को Pointer द्वारा Connect करने के लिए।
Binary Tree Parent तथा Child Nodes को Link करने के लिए।
Graph Vertices एवं Edges को Dynamically Manage करने के लिए।
Database Applications Large Records को Efficient तरीके से Access करने के लिए।
Game Development Dynamic Characters तथा Game Objects को Manage करने के लिए।
GUI Applications Windows एवं Controls के Objects को Handle करने के लिए।

Real Life Example

मान लीजिए किसी Library Management System में हजारों Book Objects Store किए गए हैं। यदि प्रत्येक Function Call में पूरा Object Copy किया जाए, तो Memory तथा Processing Time दोनों अधिक लगेंगे। ऐसी स्थिति में केवल Book Object Pointer Function में Pass किया जाता है। इससे Object Copy नहीं होता, Memory की बचत होती है तथा Program अधिक तेज़ी से कार्य करता है।


Working of Pointer to Object

Object Created



Object Address Stored



Object Pointer



Arrow Operator (->)



Access Data Members



Call Member Functions

Applications of Pointer to Object

Pointer to Object का उपयोग आधुनिक Object Oriented Programming में Memory Management, Dynamic Object Creation तथा Efficient Object Handling के लिए किया जाता है। बड़े Software Systems में Object Pointer Program की Performance तथा Memory Utilization को बेहतर बनाता है।

Application Purpose
Dynamic Objects Run Time पर Objects Create एवं Delete करना।
Linked List Nodes को Pointer द्वारा जोड़ना।
Binary Tree Parent एवं Child Nodes को Connect करना।
Graph Dynamic Vertices तथा Edges को Manage करना।
Database Systems Large Records को बिना Copy किए Access करना।
Game Development Dynamic Characters तथा Game Objects को Handle करना।
GUI Applications Windows, Buttons तथा Controls के Objects को Manage करना।

Advantages of Pointer to Object

  • Object Copy किए बिना उसका Address उपयोग किया जा सकता है।
  • Memory की बचत होती है।
  • Large Objects पर Fast Processing संभव होती है।
  • Dynamic Memory Allocation के साथ आसानी से कार्य किया जा सकता है।
  • Functions में Object Address Pass करना आसान होता है।
  • Execution Speed बेहतर होती है।
  • Professional Object Oriented Programming में अत्यंत उपयोगी है।

Limitations of Pointer to Object

  • Invalid Pointer Program Crash का कारण बन सकता है।
  • Memory Release न करने पर Memory Leak हो सकता है।
  • Dangling Pointer की समस्या उत्पन्न हो सकती है।
  • Null Pointer को Access करने पर Runtime Error हो सकता है।
  • Pointer Management अपेक्षाकृत कठिन होता है।
  • गलत Address Access करने से Undefined Behavior उत्पन्न हो सकता है।
  • Program की Debugging कठिन हो सकती है।

Best Practices

  • Pointer को Declare करते समय nullptr अथवा NULL से Initialize करें।
  • Dynamic Objects का कार्य समाप्त होने पर हमेशा delete का उपयोग करें।
  • Memory Release करने के बाद Pointer को nullptr Assign करें।
  • Object Members को Access करने के लिए हमेशा Arrow Operator (->) का उपयोग करें।
  • Invalid अथवा Uninitialized Pointer का उपयोग न करें।
  • Large Objects को Function में Pass करते समय Object Pointer का उपयोग करें।
  • Readable तथा Maintainable Code लिखें।

Real Life Example

मान लीजिए किसी Hospital Management System में हजारों Patient Objects Store किए गए हैं। यदि प्रत्येक Function Call में पूरा Object Copy किया जाए, तो Memory तथा Processing Time दोनों अधिक लगेंगे। इसलिए केवल Patient Object Pointer Function में Pass किया जाता है। इससे Object Copy नहीं होता, Memory की बचत होती है तथा Program अधिक Efficient बनता है।


Working of Pointer to Object

Object Created



Object Address Stored



Object Pointer



Arrow Operator (->)



Access Members



Execute Operations



delete (for Dynamic Objects)

Summary

Pointer to Object C++ का एक महत्वपूर्ण Object Oriented Programming Concept है जिसमें Pointer किसी Object का Address Store करता है। Object Pointer की सहायता से Object के Data Members तथा Member Functions को Arrow Operator (->) द्वारा Access किया जाता है। यह Concept Dynamic Memory Allocation, Function Argument Passing, Returning Object Pointer तथा Large Objects को Efficient तरीके से Handle करने में अत्यंत उपयोगी है। Object Pointer Memory की बचत करता है, Program की Performance बढ़ाता है तथा Professional Software Development में व्यापक रूप से उपयोग किया जाता है।

Concept Description
Pointer to Object किसी Object का Address Store करने वाला Pointer।
Declaration ClassName *pointerName;
Initialization Pointer में Object का Address Store किया जाता है।
Arrow Operator (->) Pointer द्वारा Object के Members को Access करने के लिए उपयोग किया जाता है।
Dynamic Object new Operator द्वारा Heap Memory में Create किया गया Object।
delete Operator Dynamic Object की Memory Release करने के लिए उपयोग किया जाता है।
Applications Linked List, Tree, Graph, Database Systems तथा Game Development।
Advantages Memory Saving, Fast Processing तथा Efficient Object Handling।

Important Viva Questions

  1. Pointer to Object क्या है?
  2. Object Pointer कैसे Declare किया जाता है?
  3. Arrow Operator (->) क्या है?
  4. Dot Operator तथा Arrow Operator में क्या अंतर है?
  5. Dynamic Object क्या होता है?
  6. Object Pointer का उपयोग Function में क्यों किया जाता है?
  7. Object Pointer तथा Normal Pointer में क्या अंतर है?
  8. Dynamic Object को Delete क्यों करना आवश्यक है?
  9. Array of Object Pointers क्या होता है?
  10. Object Pointer के मुख्य Applications क्या हैं?

University Examination Important Questions

  1. Pointer to Object क्या है? उदाहरण सहित समझाइए।
  2. Object Pointer की Declaration एवं Initialization लिखिए।
  3. Arrow Operator (->) को उदाहरण सहित समझाइए।
  4. Dot Operator तथा Arrow Operator में अंतर लिखिए।
  5. Dynamic Object Create करने का Program लिखिए।
  6. Function में Object Pointer Pass करने का उदाहरण लिखिए।
  7. Function से Object Pointer Return करने का Program लिखिए।
  8. Pointer to Object के Advantages एवं Limitations लिखिए।
  9. Object Pointer के Applications लिखिए।
  10. Professional Software Development में Pointer to Object की आवश्यकता स्पष्ट कीजिए।

Exam Tips

  • हमेशा याद रखें कि Object Pointer किसी Object का Address Store करता है।
  • Object के Members को Pointer द्वारा Access करने के लिए Arrow Operator (->) का उपयोग किया जाता है।
  • Dot Operator (.) केवल Object के साथ तथा Arrow Operator (->) केवल Object Pointer के साथ उपयोग किया जाता है।
  • Dynamic Object Create करने के लिए new तथा Memory Release करने के लिए delete का उपयोग करें।
  • Large Objects को Function में Pass करते समय Object Pointer का उपयोग अधिक Efficient होता है।
  • Memory Leak से बचने के लिए Dynamic Objects को हमेशा delete करें।
  • RGPV Practical एवं Viva में Object Pointer, Arrow Operator तथा Dynamic Object आधारित Programs अक्सर पूछे जाते हैं।

Conclusion

Pointer to Object C++ Object Oriented Programming का एक अत्यंत महत्वपूर्ण Concept है जो Objects को Efficient तरीके से Access एवं Manage करने की सुविधा प्रदान करता है। Object Pointer के माध्यम से बड़े Objects को Copy किए बिना उनके Members तक पहुँचा जा सकता है, जिससे Memory की बचत होती है तथा Program की Performance बेहतर होती है। Dynamic Memory Allocation, Linked List, Tree, Graph, Database Management Systems, GUI Applications तथा Game Development जैसे क्षेत्रों में Object Pointer का व्यापक उपयोग किया जाता है। RGPV B.Tech First Year के विद्यार्थियों के लिए यह Topic Theory, Practical तथा Viva तीनों दृष्टिकोण से अत्यंत महत्वपूर्ण है।

Related Articles

Arrays of Objects in C++ Notes | Object Array, Declaration, Initialization & Examples | Basic Computer Engineering | RGPV BTech First Year

Arrays ...

Read More →

Object as Function Argument & Returning Object from Function in C++ Notes | Pass Object to Function, Return Object & Examples | Basic Computer Engineering | RGPV BTech First Year

Object ...

Read More →

Dynamic Memory Allocation in C++ Notes | new & delete Operators, Heap Memory, Dynamic Objects & Examples | Basic Computer Engineering | RGPV BTech First Year

Dynamic...

Read More →

this Pointer in C++ Notes | this Keyword, Uses, Advantages & Examples | Basic Computer Engineering | RGPV BTech First Year

this Po...

Read More →

Static Data Members & Static Member Functions in C++ Notes | Static Keyword, Static Variables, Static Functions & Examples | Basic Computer Engineering | RGPV BTech First Year

Static ...

Read More →