वर्ग कार्यान्वयन फ़ाइल: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग ]] में, वर्ग कार्यान्वयन फ़ाइल का उपयोग अधिकाशतः [[ विधि (कंप्यूटर प्रोग्रामिंग) |वर्ग (कंप्यूटर प्रोग्रामिंग) | [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग | ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] में, वर्ग कार्यान्वयन फ़ाइल का उपयोग अधिकाशतः [[ विधि (कंप्यूटर प्रोग्रामिंग) |वर्ग (कंप्यूटर प्रोग्रामिंग) की विधि]][[ विधि (कंप्यूटर प्रोग्रामिंग) | (s)]] के लिए कार्यान्वयन कोड को सम्मिलित करने के लिए किया जाता है। C और C++ जैसी प्रोग्रामिंग भाषा इन कार्यान्वयन फ़ाइलों का उपयोग करती हैं | जिससे इन विधियों के अंतरापृष्ठ और कार्यान्वयन को अलग किया जा सके। <ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 10: | Line 10: | ||
</ref> | </ref> | ||
== अभिप्रेरण == | == अभिप्रेरण == | ||
इस संरचना का उपयोग करते हुए, | इस संरचना का उपयोग करते हुए, [[वर्ग परिभाषा]] फ़ाइल भी बनाई जाती है | जिसमें वर्ग और उसके सदस्यों की घोषणा होती है। यदि वर्ग परिभाषा को सम्मिलित किया गया है और इसके विधियों के लिए कार्यान्वयन फ़ाइल उपलब्ध है, तो उपयोगकर्ता कक्षा के [[वस्तु (कंप्यूटर विज्ञान)|ऑब्जेक्ट (कंप्यूटर विज्ञान)]] को इंस्टेंस (कंप्यूटर विज्ञान) कर सकता है। इस संरचना का उद्देश्य कार्यान्वयन कोड को छिपाकर रखना है | किन्तु उपयोगकर्ता को रचना देखने की अनुमति देना है।<ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 51: | Line 51: | ||
</ref> | </ref> | ||
== एक वर्ग कार्यान्वयन फ़ाइल की संरचना == | == एक वर्ग कार्यान्वयन फ़ाइल की संरचना == | ||
कार्यान्वयन से इंटरफ़ेस को विभाजित करने के लिए एक वर्ग परिभाषा बनाते समय एक कार्यान्वयन फ़ाइल का उपयोग | कार्यान्वयन से इंटरफ़ेस को विभाजित करने के लिए एक वर्ग परिभाषा बनाते समय एक कार्यान्वयन फ़ाइल का उपयोग [[सी ++ प्रोग्रामिंग भाषा|C++ प्रोग्रामिंग भाषा]] में किया जाता है। शीर्षलेख फ़ाइल कक्षा के सभी सदस्य कार्यों (विधियों) और डेटा विधियों (फ़ील्ड) की घोषणा करेगी। <ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 84: | Line 84: | ||
| url = http://www.itechtalk.com/thread1517.html | | url = http://www.itechtalk.com/thread1517.html | ||
}} | }} | ||
</ref> इसमें C++ मानक लाइब्रेरी से कोई पुस्तकालय भी सम्मिलित हो सकता है | जिसका उपयोग फ़ाइल में घोषित विधियों में से किसी के द्वारा किया जाएगा। वर्ग कार्यान्वयन फाइल में सामान्यतः संबंधित हेडर फाइल को सम्मिलित करने के लिए | </ref> इसमें C++ मानक लाइब्रेरी से कोई पुस्तकालय भी सम्मिलित हो सकता है | जिसका उपयोग फ़ाइल में घोषित विधियों में से किसी के द्वारा किया जाएगा। वर्ग कार्यान्वयन फाइल में सामान्यतः संबंधित हेडर फाइल को सम्मिलित करने के लिए रेखा होगी (नीचे उदाहरण देखें)। | ||
=== '''C++ में उदाहरण''' === | === '''C++ में उदाहरण''' === | ||
उदाहरण वर्ग नामक एक वर्ग होगा | उदाहरण वर्ग नामक एक वर्ग होगा <code>उदाहरण वर्ग</code>. इस C++ फाइल की हेडर फाइल का नाम उदाहरण वर्ग.h होगा और कार्यान्वयन फाइल उदाहरण वर्ग.cc होगी।<ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 108: | Line 108: | ||
</ref> | </ref> | ||
उदाहरण वर्ग.cc की संरचना का | उदाहरण वर्ग.cc की संरचना का उदाहरण इस तरह दिखेगा | | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
#include "example_class.h" | #include "example_class.h" | ||
Line 154: | Line 154: | ||
</ref> | </ref> | ||
यह उदाहरण | यह उदाहरण वर्ग का उपयोग करेगा। इन कार्यान्वयन फ़ाइलों का उपयोग करते समय C++ और ऑब्जेक्टिव-C के बीच उल्लेखनीय अंतर फाइलों के अंत में उपयोग किए जाने वाले एक्सटेंशन हैं। C++ में यह .cpp होगा <ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 190: | Line 190: | ||
| url = https://archive.org/details/programmingios40000neub | | url = https://archive.org/details/programmingios40000neub | ||
}} | }} | ||
</ref> जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है। यह उद्देश्य-C में उदाहरण वर्ग.h का | </ref> जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है। यह उद्देश्य-C में उदाहरण वर्ग.h का उदाहरण है |<syntaxhighlight lang="objc"> | ||
#import <UIKit/UIKit.h> | #import <UIKit/UIKit.h> | ||
Line 199: | Line 199: | ||
@end | @end | ||
</syntaxhighlight> | </syntaxhighlight> | ||
यह उद्देश्य-C में वर्ग की कार्यान्वयन फ़ाइल उदाहरण वर्ग.m का | यह उद्देश्य-C में वर्ग की कार्यान्वयन फ़ाइल उदाहरण वर्ग.m का उदाहरण है | | ||
<syntaxhighlight lang="objc"> | <syntaxhighlight lang="objc"> | ||
#import "ExampleClass.h" | #import "ExampleClass.h" |
Revision as of 17:45, 18 May 2023
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में, वर्ग कार्यान्वयन फ़ाइल का उपयोग अधिकाशतः वर्ग (कंप्यूटर प्रोग्रामिंग) की विधि (s) के लिए कार्यान्वयन कोड को सम्मिलित करने के लिए किया जाता है। C और C++ जैसी प्रोग्रामिंग भाषा इन कार्यान्वयन फ़ाइलों का उपयोग करती हैं | जिससे इन विधियों के अंतरापृष्ठ और कार्यान्वयन को अलग किया जा सके। [1]
अभिप्रेरण
इस संरचना का उपयोग करते हुए, वर्ग परिभाषा फ़ाइल भी बनाई जाती है | जिसमें वर्ग और उसके सदस्यों की घोषणा होती है। यदि वर्ग परिभाषा को सम्मिलित किया गया है और इसके विधियों के लिए कार्यान्वयन फ़ाइल उपलब्ध है, तो उपयोगकर्ता कक्षा के ऑब्जेक्ट (कंप्यूटर विज्ञान) को इंस्टेंस (कंप्यूटर विज्ञान) कर सकता है। इस संरचना का उद्देश्य कार्यान्वयन कोड को छिपाकर रखना है | किन्तु उपयोगकर्ता को रचना देखने की अनुमति देना है।[2][3] उपयोगकर्ता किसी ऑब्जेक्ट (कंप्यूटर विज्ञान) के सार्वजनिक अंतरापृष्ठ का उपयोग करते हैं | जिससे वस्तुओं को यथासंभव सरल बनाया जा सके और यह सुनिश्चित किया जा सके कि क्लाइंट कोड वर्ग के कार्यान्वयन के अनावश्यक विवरण के साथ उपयोगकर्ता को विचलित न करे।[4]
यह उपयोगकर्ता को प्रभावी रूप से कक्षा का उपयोग करने के लिए आवश्यक जानकारी की अनुमति देता है, किन्तु उसे संकलित कोड को हानि पहुँचाने से रोकता है।[5]
एक वर्ग कार्यान्वयन फ़ाइल की संरचना
कार्यान्वयन से इंटरफ़ेस को विभाजित करने के लिए एक वर्ग परिभाषा बनाते समय एक कार्यान्वयन फ़ाइल का उपयोग C++ प्रोग्रामिंग भाषा में किया जाता है। शीर्षलेख फ़ाइल कक्षा के सभी सदस्य कार्यों (विधियों) और डेटा विधियों (फ़ील्ड) की घोषणा करेगी। [6][7][8]
कार्यान्वयन फ़ाइल में हेडर फ़ाइल में घोषित विधियों की वास्तविक परिभाषा या स्रोत कोड होगा। यह फ़ाइल हेडर ब्लॉक से प्रारंभ हो सकती है | जो टिप्पणियां प्रदान करती है | जो परिभाषित वर्ग के उद्देश्य का वर्णन करती है और वास्तविक फ़ाइल के निर्माण के बारे में कोई भी विवरण, जैसे कि फ़ाइल के लेखक और फ़ाइल को बनाया गया था।[9] इसमें C++ मानक लाइब्रेरी से कोई पुस्तकालय भी सम्मिलित हो सकता है | जिसका उपयोग फ़ाइल में घोषित विधियों में से किसी के द्वारा किया जाएगा। वर्ग कार्यान्वयन फाइल में सामान्यतः संबंधित हेडर फाइल को सम्मिलित करने के लिए रेखा होगी (नीचे उदाहरण देखें)।
C++ में उदाहरण
उदाहरण वर्ग नामक एक वर्ग होगा उदाहरण वर्ग
. इस C++ फाइल की हेडर फाइल का नाम उदाहरण वर्ग.h होगा और कार्यान्वयन फाइल उदाहरण वर्ग.cc होगी।[10][11]
उदाहरण वर्ग.cc की संरचना का उदाहरण इस तरह दिखेगा |
#include "example_class.h"
ExampleClass::ExampleClass() = default;
void ExampleClass::AddSomething(int k) {
...
}
इस उदाहरण में, कार्यों के कार्यान्वयन को छोड़ दिया गया है | किन्तु कार्यों को इस तरह उदाहरण वर्ग.h में घोषित किया जाना चाहिए |[12]
#include <string>
class ExampleClass {
public:
ExampleClass(); // Constructor.
void AddSomething(int k);
private:
std::string name_;
};
उद्देश्य C में उदाहरण
वर्ग कार्यान्वयन फ़ाइल को कैसे संरचित किया जाएगा इसका एक और उदाहरण ऑब्जेक्टिव-C के साथ देखा जा सकता है | जिसका उपयोग आईओएस प्रोग्रामिंग में किया जाता है।[13]
यह उदाहरण वर्ग का उपयोग करेगा। इन कार्यान्वयन फ़ाइलों का उपयोग करते समय C++ और ऑब्जेक्टिव-C के बीच उल्लेखनीय अंतर फाइलों के अंत में उपयोग किए जाने वाले एक्सटेंशन हैं। C++ में यह .cpp होगा [14] और उद्देश्य-C में यह .m होगा |[15] किन्तु दोनों अपनी हैडर फ़ाइल के लिए एक ही .h एक्सटेंशन का उपयोग करेंगे | [16][17] जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है। यह उद्देश्य-C में उदाहरण वर्ग.h का उदाहरण है |
#import <UIKit/UIKit.h>
@interface ExampleClass : NSObject {
// instance variable declarations go here
}
- (NSString*) name;
@end
यह उद्देश्य-C में वर्ग की कार्यान्वयन फ़ाइल उदाहरण वर्ग.m का उदाहरण है |
#import "ExampleClass.h"
@implementation ExampleClass
- (NSString*) name {
return @"…";
}
@end
यह भी देखें
- C++ वर्ग
- हेडर फाइल
- सोर्स कोड
- C++ मानक पुस्तकालय
- उद्देश्य C
संदर्भ
- ↑ Alan Griffiths (2005). "Separating Interface and Implementation in C++". ACCU. Retrieved 2013-05-07.
- ↑ Alan Griffiths (2005). "Separating Interface and Implementation in C++". ACCU. Retrieved 2013-05-07.
- ↑ 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.
- ↑ Alan Griffiths (2005). "Separating Interface and Implementation in C++". ACCU. Retrieved 2013-05-07.
- ↑ "C++ Dos and Don'ts". The Chromium Projects. Retrieved 2013-05-07.
- ↑ "Introduction to C++ Classes". Retrieved 2013-05-07.
- ↑ Alan Griffiths (2005). "Separating Interface and Implementation in C++". ACCU. Retrieved 2013-05-07.
- ↑ 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.
- ↑ "The implementation file in C++ Programming". ITechTalk. Retrieved 2013-05-07.
- ↑ "Introduction to C++ Classes". Retrieved 2013-05-07.
- ↑ 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.
- ↑ "Introduction to C++ Classes". Retrieved 2013-05-07.
- ↑ 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.
- ↑ "Introduction to C++ Classes". Retrieved 2013-05-07.
- ↑ 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.
- ↑ "Introduction to C++ Classes". Retrieved 2013-05-07.
- ↑ 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.