वर्ग कार्यान्वयन फ़ाइल: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 10: Line 10:
</ref>
</ref>


'''<br />लाइब्रेरी से कोई पुस्तकालय भी शामिल हो सकता है जिसका उपयोग फ़ाइल में घोषित विधियों में से किसी के द्वारा किया जाएगा। क्लास इम्प्लीमेंटेशन फाइल में आमतौर पर संबंधित हेडर फाइल को शामिल करने के लिए एक लाइन होगी (नीचे उदाहरण देखें)।'''
'''<br />लाइब्रेरी से कोई पुस्तकालय भी शामिल हो सकता है जिसका उपयोग फ़ाइल में घोषित विधियों में'''  
== प्रेरणा ==
== प्रेरणा ==
इस संरचना का उपयोग करते हुए, एक [[वर्ग परिभाषा]] फ़ाइल भी बनाई जाती है जिसमें वर्ग और उसके सदस्यों की घोषणा होती है। यदि वर्ग परिभाषा को शामिल किया गया है और इसके तरीकों के लिए कार्यान्वयन फ़ाइल उपलब्ध है, तो उपयोगकर्ता कक्षा के एक [[वस्तु (कंप्यूटर विज्ञान)]] को इंस्टेंस (कंप्यूटर विज्ञान) कर सकता है। इस संरचना का उद्देश्य कार्यान्वयन कोड को छिपाकर रखना है, लेकिन उपयोगकर्ता को डिज़ाइन देखने की अनुमति देना है।<ref>
इस संरचना का उपयोग करते हुए, [[वर्ग परिभाषा]] फ़ाइल भी बनाई जाती है जिसमें वर्ग और उसके सदस्यों की घोषणा होती है। यदि वर्ग परिभाषा को शामिल किया गया है और इसके तरीकों के लिए कार्यान्वयन फ़ाइल उपलब्ध है, तो उपयोगकर्ता कक्षा के [[वस्तु (कंप्यूटर विज्ञान)]] को इंस्टेंस (कंप्यूटर विज्ञान) कर सकता है। इस संरचना का उद्देश्य कार्यान्वयन कोड को छिपाकर रखना है, लेकिन उपयोगकर्ता को डिज़ाइन देखने की अनुमति देना है।<ref>
{{cite web
{{cite web
| access-date = 2013-05-07
| access-date = 2013-05-07
Line 86: Line 86:
}}
}}
</ref>
</ref>
इसमें सी ++ मानक लाइब्रेरी से कोई पुस्तकालय भी शामिल हो सकता है जिसका उपयोग फ़ाइल में घोषित विधियों में से किसी के द्वारा किया जाएगा। क्लास इम्प्लीमेंटेशन फाइल में आमतौर पर संबंधित हेडर फाइल को शामिल करने के लिए एक लाइन होगी (नीचे उदाहरण देखें)।
इसमें सी ++ मानक लाइब्रेरी से कोई पुस्तकालय भी शामिल हो सकता है जिसका उपयोग फ़ाइल में घोषित विधियों में से किसी के द्वारा किया जाएगा। क्लास इम्प्लीमेंटेशन फाइल में आमतौर पर संबंधित हेडर फाइल को शामिल करने के लिए लाइन होगी (नीचे उदाहरण देखें)।


=== सी ++ === में उदाहरण
=== सी ++ === में उदाहरण
एक उदाहरण के रूप में एक वर्ग कहा जाएगा <code>ExampleClass</code>. इस C++ फाइल की हेडर फाइल का नाम example_class.h होगा और इम्प्लीमेंटेशन फाइल example_class.cc होगी।<ref>
उदाहरण के रूप में एक वर्ग कहा जाएगा <code>ExampleClass</code>. इस C++ फाइल की हेडर फाइल का नाम example_class.h होगा और इम्प्लीमेंटेशन फाइल example_class.cc होगी।<ref>
{{cite web
{{cite web
| access-date = 2013-05-07
| access-date = 2013-05-07
Line 108: Line 108:
}}
}}
</ref>
</ref>
example_class.cc की संरचना का एक उदाहरण इस तरह दिखेगा:
example_class.cc की संरचना का उदाहरण इस तरह दिखेगा:
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
#include "example_class.h"
#include "example_class.h"
Line 140: Line 140:




=== [[ उद्देश्य सी ]] === में उदाहरण
<nowiki>===</nowiki> [[ उद्देश्य सी ]] === में उदाहरण
एक वर्ग कार्यान्वयन फ़ाइल को कैसे संरचित किया जाएगा इसका एक और उदाहरण ऑब्जेक्टिव-सी के साथ देखा जा सकता है, जिसका उपयोग [[iOS]] प्रोग्रामिंग में किया जाता है।<ref>
वर्ग कार्यान्वयन फ़ाइल को कैसे संरचित किया जाएगा इसका एक और उदाहरण ऑब्जेक्टिव-सी के साथ देखा जा सकता है, जिसका उपयोग [[iOS]] प्रोग्रामिंग में किया जाता है।<ref>
{{cite book
{{cite book
| last = Neuberg
| last = Neuberg
Line 154: Line 154:
}}
}}
</ref>
</ref>
यह उदाहरण exampleClass का उपयोग करेगा। इन कार्यान्वयन फ़ाइलों का उपयोग करते समय सी ++ और ऑब्जेक्टिव-सी के बीच एक उल्लेखनीय अंतर फाइलों के अंत में उपयोग किए जाने वाले एक्सटेंशन हैं। C++ में यह .cpp होगा<ref>
यह उदाहरण exampleClass का उपयोग करेगा। इन कार्यान्वयन फ़ाइलों का उपयोग करते समय सी ++ और ऑब्जेक्टिव-सी के बीच उल्लेखनीय अंतर फाइलों के अंत में उपयोग किए जाने वाले एक्सटेंशन हैं। C++ में यह .cpp होगा<ref>
{{cite web
{{cite web
| access-date = 2013-05-07
| access-date = 2013-05-07
Line 195: Line 195:
जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।
जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।


यह Objective-C में exampleClass.h का एक उदाहरण है:
यह Objective-C में exampleClass.h का उदाहरण है:
<syntaxhighlight lang="objc">
<syntaxhighlight lang="objc">
#import <UIKit/UIKit.h>
#import <UIKit/UIKit.h>
Line 205: Line 205:
@end
@end
</syntaxhighlight>
</syntaxhighlight>
यह उद्देश्य-सी में वर्ग की कार्यान्वयन फ़ाइल exampleclass.m का एक उदाहरण है:
यह उद्देश्य-सी में वर्ग की कार्यान्वयन फ़ाइल exampleclass.m का उदाहरण है:
<syntaxhighlight lang="objc">
<syntaxhighlight lang="objc">
#import "ExampleClass.h"
#import "ExampleClass.h"

Revision as of 17:12, 18 May 2023

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में, क्लास इम्प्लीमेंटेशन फ़ाइल का उपयोग अक्सर विधि (कंप्यूटर प्रोग्रामिंग) के लिए कार्यान्वयन कोड को शामिल करने के लिए किया जाता है। वर्ग (कंप्यूटर प्रोग्रामिंग) की विधि (एस)। C और C++ जैसी प्रोग्रामिंग लैंग्वेज इन कार्यान्वयन फ़ाइलों का उपयोग करती हैं ताकि इन विधियों के इंटरफ़ेस और कार्यान्वयन को अलग किया जा सके।[1]


लाइब्रेरी से कोई पुस्तकालय भी शामिल हो सकता है जिसका उपयोग फ़ाइल में घोषित विधियों में

प्रेरणा

इस संरचना का उपयोग करते हुए, वर्ग परिभाषा फ़ाइल भी बनाई जाती है जिसमें वर्ग और उसके सदस्यों की घोषणा होती है। यदि वर्ग परिभाषा को शामिल किया गया है और इसके तरीकों के लिए कार्यान्वयन फ़ाइल उपलब्ध है, तो उपयोगकर्ता कक्षा के वस्तु (कंप्यूटर विज्ञान) को इंस्टेंस (कंप्यूटर विज्ञान) कर सकता है। इस संरचना का उद्देश्य कार्यान्वयन कोड को छिपाकर रखना है, लेकिन उपयोगकर्ता को डिज़ाइन देखने की अनुमति देना है।[2][3] उपयोगकर्ता किसी वस्तु (कंप्यूटर विज्ञान) के सार्वजनिक इंटरफ़ेस का उपयोग करते हैं ताकि वस्तुओं को यथासंभव सरल बनाया जा सके, यह सुनिश्चित किया जा सके कि क्लाइंट कोड वर्ग के कार्यान्वयन के अनावश्यक विवरण के साथ उपयोगकर्ता को विचलित न करे।[4] यह उपयोगकर्ता को प्रभावी रूप से कक्षा का उपयोग करने के लिए आवश्यक जानकारी की अनुमति देता है, लेकिन उसे संकलित कोड को नुकसान पहुँचाने से रोकता है।[5]


एक वर्ग कार्यान्वयन फ़ाइल की संरचना

कार्यान्वयन फ़ाइल का उपयोग सी ++ प्रोग्रामिंग भाषा| में किया जाता है कार्यान्वयन से इंटरफ़ेस को विभाजित करने के लिए कक्षा परिभाषा बनाते समय सी ++ प्रोग्रामिंग। शीर्षलेख फ़ाइल कक्षा के सभी सी ++ वर्गों (विधियों) और सी ++ कक्षाओं (फ़ील्ड) की घोषणा करेगी।[6][7][8] कार्यान्वयन फ़ाइल में हेडर फ़ाइल में घोषित विधियों की वास्तविक परिभाषा या स्रोत कोड होगा। यह फ़ाइल हेडर ब्लॉक से शुरू हो सकती है, जो टिप्पणियां प्रदान करती है जो परिभाषित वर्ग के उद्देश्य का वर्णन करती है और वास्तविक फ़ाइल के निर्माण के बारे में कोई भी विवरण, जैसे कि फ़ाइल के लेखक और फ़ाइल को बनाया गया था।[9] इसमें सी ++ मानक लाइब्रेरी से कोई पुस्तकालय भी शामिल हो सकता है जिसका उपयोग फ़ाइल में घोषित विधियों में से किसी के द्वारा किया जाएगा। क्लास इम्प्लीमेंटेशन फाइल में आमतौर पर संबंधित हेडर फाइल को शामिल करने के लिए लाइन होगी (नीचे उदाहरण देखें)।

=== सी ++ === में उदाहरण उदाहरण के रूप में एक वर्ग कहा जाएगा ExampleClass. इस C++ फाइल की हेडर फाइल का नाम example_class.h होगा और इम्प्लीमेंटेशन फाइल example_class.cc होगी।[10][11] example_class.cc की संरचना का उदाहरण इस तरह दिखेगा:

#include "example_class.h"

ExampleClass::ExampleClass() = default;

void ExampleClass::AddSomething(int k) {
   ...
}

इस उदाहरण में, कार्यों के कार्यान्वयन को छोड़ दिया गया है, लेकिन कार्यों को इस तरह example_class.h में घोषित किया जाना चाहिए:[12]

#include <string>

class ExampleClass {
 public:
  ExampleClass();  // Constructor.
  void AddSomething(int k);          

 private:
  std::string name_;                      
};


=== उद्देश्य सी === में उदाहरण वर्ग कार्यान्वयन फ़ाइल को कैसे संरचित किया जाएगा इसका एक और उदाहरण ऑब्जेक्टिव-सी के साथ देखा जा सकता है, जिसका उपयोग iOS प्रोग्रामिंग में किया जाता है।[13] यह उदाहरण exampleClass का उपयोग करेगा। इन कार्यान्वयन फ़ाइलों का उपयोग करते समय सी ++ और ऑब्जेक्टिव-सी के बीच उल्लेखनीय अंतर फाइलों के अंत में उपयोग किए जाने वाले एक्सटेंशन हैं। C++ में यह .cpp होगा[14] और Objective-C में यह .m होगा,[15] लेकिन दोनों अपनी हैडर फ़ाइल के लिए एक ही .h एक्सटेंशन का उपयोग करेंगे हेडर फाइल[16][17] जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।

यह Objective-C में exampleClass.h का उदाहरण है:

#import <UIKit/UIKit.h>

@interface ExampleClass : NSObject {
    // instance variable declarations go here
}
- (NSString*) name;
@end

यह उद्देश्य-सी में वर्ग की कार्यान्वयन फ़ाइल exampleclass.m का उदाहरण है:

#import "ExampleClass.h"

@implementation ExampleClass
- (NSString*) name {
    return @"…";
}
@end


यह भी देखें

  • सी ++ कक्षाएं
  • हेडर फाइल
  • सोर्स कोड
  • सी ++ मानक पुस्तकालय
  • उद्देश्य सी

संदर्भ

  1. Alan Griffiths (2005). "Separating Interface and Implementation in C++". ACCU. Retrieved 2013-05-07.
  2. Alan Griffiths (2005). "Separating Interface and Implementation in C++". ACCU. Retrieved 2013-05-07.
  3. Neuberg, Matt (26 May 2011). "Chapter 4.3 Header File and Implementation File". Programming iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  4. Alan Griffiths (2005). "Separating Interface and Implementation in C++". ACCU. Retrieved 2013-05-07.
  5. "C++ Dos and Don'ts". The Chromium Projects. Retrieved 2013-05-07.
  6. "Introduction to C++ Classes". Retrieved 2013-05-07.
  7. Alan Griffiths (2005). "Separating Interface and Implementation in C++". ACCU. Retrieved 2013-05-07.
  8. Febil Chacko Thanikal (2009). "How to define a template class in a .h file and implement it in a .cpp file". Code Project. Retrieved 2013-05-07.
  9. "The implementation file in C++ Programming". ITechTalk. Retrieved 2013-05-07.
  10. "Introduction to C++ Classes". Retrieved 2013-05-07.
  11. Neuberg, Matt (26 May 2011). "Chapter 4.3 Header File and Implementation File". Programming iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  12. "Introduction to C++ Classes". Retrieved 2013-05-07.
  13. Neuberg, Matt (26 May 2011). "Chapter 4.3 Header File and Implementation File". Programming iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  14. "Introduction to C++ Classes". Retrieved 2013-05-07.
  15. Neuberg, Matt (26 May 2011). "Chapter 4.3 Header File and Implementation File". Programming iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  16. "Introduction to C++ Classes". Retrieved 2013-05-07.
  17. Neuberg, Matt (26 May 2011). "Chapter 4.3 Header File and Implementation File". Programming iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.


बाहरी संबंध