वर्ग कार्यान्वयन फ़ाइल: Difference between revisions
No edit summary |
No edit summary |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग ]] में, | [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग | ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] में, वर्ग कार्यान्वयन फ़ाइल का उपयोग अधिकाशतः [[ विधि (कंप्यूटर प्रोग्रामिंग) |वर्ग (कंप्यूटर प्रोग्रामिंग) की विधि]][[ विधि (कंप्यूटर प्रोग्रामिंग) | (s)]] के लिए कार्यान्वयन कोड को सम्मिलित करने के लिए किया जाता है। सी और सी++ जैसी प्रोग्रामिंग भाषा इन कार्यान्वयन फ़ाइलों का उपयोग करती हैं | जिससे इन विधियों के अंतरापृष्ठ और कार्यान्वयन को अलग किया जा सके। <ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 9: | Line 9: | ||
}} | }} | ||
</ref> | </ref> | ||
== अभिप्रेरण == | |||
इस संरचना का उपयोग करते हुए, [[वर्ग परिभाषा]] फ़ाइल भी बनाई जाती है | जिसमें वर्ग और उसके सदस्यों की घोषणा होती है। यदि वर्ग परिभाषा को सम्मिलित किया गया है और इसके विधियों के लिए कार्यान्वयन फ़ाइल उपलब्ध है, तो उपयोगकर्ता कक्षा के [[वस्तु (कंप्यूटर विज्ञान)|ऑब्जेक्ट (कंप्यूटर विज्ञान)]] को इंस्टेंस (कंप्यूटर विज्ञान) कर सकता है। इस संरचना का उद्देश्य कार्यान्वयन कोड को छिपाकर रखना है | किन्तु उपयोगकर्ता को रचना देखने की अनुमति देना है।<ref> | |||
== | |||
इस संरचना का उपयोग करते हुए, | |||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 33: | Line 31: | ||
| url = https://archive.org/details/programmingios40000neub | | url = https://archive.org/details/programmingios40000neub | ||
}} | }} | ||
</ref> उपयोगकर्ता किसी | </ref> उपयोगकर्ता किसी ऑब्जेक्ट (कंप्यूटर विज्ञान) के सार्वजनिक अंतरापृष्ठ का उपयोग करते हैं | जिससे वस्तुओं को यथासंभव सरल बनाया जा सके और यह सुनिश्चित किया जा सके कि क्लाइंट कोड वर्ग के कार्यान्वयन के अनावश्यक विवरण के साथ उपयोगकर्ता को विचलित न करे।<ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 43: | Line 41: | ||
}} | }} | ||
</ref> | </ref> | ||
यह उपयोगकर्ता को प्रभावी रूप से कक्षा का उपयोग करने के लिए आवश्यक जानकारी की अनुमति देता है, | |||
यह उपयोगकर्ता को प्रभावी रूप से कक्षा का उपयोग करने के लिए आवश्यक जानकारी की अनुमति देता है, किन्तु उसे संकलित कोड को हानि पहुँचाने से रोकता है।<ref> | |||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 51: | Line 50: | ||
}} | }} | ||
</ref> | </ref> | ||
== एक वर्ग कार्यान्वयन फ़ाइल की संरचना == | == एक वर्ग कार्यान्वयन फ़ाइल की संरचना == | ||
कार्यान्वयन फ़ाइल का उपयोग [[सी ++ प्रोग्रामिंग भाषा]] | कार्यान्वयन से इंटरफ़ेस को विभाजित करने के लिए एक वर्ग परिभाषा बनाते समय एक कार्यान्वयन फ़ाइल का उपयोग [[सी ++ प्रोग्रामिंग भाषा|सी++ प्रोग्रामिंग भाषा]] में किया जाता है। शीर्षलेख फ़ाइल कक्षा के सभी सदस्य कार्यों (विधियों) और डेटा विधियों (फ़ील्ड) की घोषणा करेगी। <ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 78: | Line 75: | ||
| url = http://www.codeproject.com/Articles/48575/How-to-define-a-template-class-in-a-h-file-and-imp | | url = http://www.codeproject.com/Articles/48575/How-to-define-a-template-class-in-a-h-file-and-imp | ||
}} | }} | ||
</ref> कार्यान्वयन फ़ाइल में हेडर फ़ाइल में घोषित विधियों की वास्तविक परिभाषा या स्रोत कोड होगा। यह फ़ाइल हेडर ब्लॉक से | </ref> | ||
कार्यान्वयन फ़ाइल में हेडर फ़ाइल में घोषित विधियों की वास्तविक परिभाषा या स्रोत कोड होगा। यह फ़ाइल हेडर ब्लॉक से प्रारंभ हो सकती है | जो टिप्पणियां प्रदान करती है | जो परिभाषित वर्ग के उद्देश्य का वर्णन करती है और वास्तविक फ़ाइल के निर्माण के बारे में कोई भी विवरण, जैसे कि फ़ाइल के लेखक और फ़ाइल को बनाया गया था।<ref> | |||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 85: | Line 84: | ||
| url = http://www.itechtalk.com/thread1517.html | | url = http://www.itechtalk.com/thread1517.html | ||
}} | }} | ||
</ref> | </ref> इसमें सी++ मानक लाइब्रेरी से कोई लाइब्रेरी भी सम्मिलित हो सकता है | जिसका उपयोग फ़ाइल में घोषित विधियों में से किसी के द्वारा किया जाएगा। वर्ग कार्यान्वयन फाइल में सामान्यतः संबंधित हेडर फाइल को सम्मिलित करने के लिए रेखा होगी (नीचे उदाहरण देखें)। | ||
इसमें सी ++ मानक लाइब्रेरी से कोई | |||
=== '''सी++ में उदाहरण''' === | |||
उदाहरण वर्ग नामक एक वर्ग होगा <code>उदाहरण वर्ग</code>. इस सी++ फाइल की हेडर फाइल का नाम उदाहरण वर्ग.h होगा और कार्यान्वयन फाइल उदाहरण वर्ग.cc होगी।<ref> | |||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 108: | Line 107: | ||
}} | }} | ||
</ref> | </ref> | ||
उदाहरण वर्ग.cc की संरचना का उदाहरण इस तरह दिखेगा | | |||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
#include "example_class.h" | #include "example_class.h" | ||
Line 119: | Line 119: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
इस उदाहरण में, कार्यों के कार्यान्वयन को छोड़ दिया गया है | इस उदाहरण में, कार्यों के कार्यान्वयन को छोड़ दिया गया है | किन्तु कार्यों को इस तरह उदाहरण वर्ग.h में घोषित किया जाना चाहिए |<ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 139: | Line 139: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== [[ उद्देश्य सी | '''उद्देश्य सी''']] '''में उदाहरण''' === | |||
वर्ग कार्यान्वयन फ़ाइल को कैसे संरचित किया जाएगा इसका एक और उदाहरण ऑब्जेक्टिव-सी के साथ देखा जा सकता है | जिसका उपयोग [[iOS|आईओएस]] प्रोग्रामिंग में किया जाता है।<ref> | |||
वर्ग कार्यान्वयन फ़ाइल को कैसे संरचित किया जाएगा इसका एक और उदाहरण ऑब्जेक्टिव-सी के साथ देखा जा सकता है | |||
{{cite book | {{cite book | ||
| last = Neuberg | | last = Neuberg | ||
Line 154: | Line 153: | ||
}} | }} | ||
</ref> | </ref> | ||
यह उदाहरण | |||
यह उदाहरण वर्ग का उपयोग करेगा। इन कार्यान्वयन फ़ाइलों का उपयोग करते समय सी++ और ऑब्जेक्टिव-सी के बीच उल्लेखनीय अंतर फाइलों के अंत में उपयोग किए जाने वाले एक्सटेंशन हैं। सी++ में यह .cpp होगा <ref> | |||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 160: | Line 160: | ||
| url = http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-INTRO.html | | url = http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-INTRO.html | ||
}} | }} | ||
</ref> | </ref> और उद्देश्य-सी में यह .m होगा |<ref> | ||
और | |||
{{cite book | {{cite book | ||
| last = Neuberg | | last = Neuberg | ||
Line 173: | Line 172: | ||
| url = https://archive.org/details/programmingios40000neub | | url = https://archive.org/details/programmingios40000neub | ||
}} | }} | ||
</ref> | </ref> किन्तु दोनों अपनी हैडर फ़ाइल के लिए एक ही .h एक्सटेंशन का उपयोग करेंगे | <ref> | ||
{{cite web | {{cite web | ||
| access-date = 2013-05-07 | | access-date = 2013-05-07 | ||
Line 192: | Line 190: | ||
| url = https://archive.org/details/programmingios40000neub | | url = https://archive.org/details/programmingios40000neub | ||
}} | }} | ||
</ref> | </ref> जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है। यह उद्देश्य-सी में उदाहरण वर्ग.h का उदाहरण है |<syntaxhighlight lang="objc"> | ||
जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है। | |||
यह | |||
<syntaxhighlight lang="objc"> | |||
#import <UIKit/UIKit.h> | #import <UIKit/UIKit.h> | ||
Line 205: | Line 199: | ||
@end | @end | ||
</syntaxhighlight> | </syntaxhighlight> | ||
यह उद्देश्य-सी में वर्ग की कार्यान्वयन फ़ाइल | यह उद्देश्य-सी में वर्ग की कार्यान्वयन फ़ाइल उदाहरण वर्ग.m का उदाहरण है | | ||
<syntaxhighlight lang="objc"> | <syntaxhighlight lang="objc"> | ||
#import "ExampleClass.h" | #import "ExampleClass.h" | ||
Line 215: | Line 209: | ||
@end | @end | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== यह भी देखें == | == यह भी देखें == | ||
* सी ++ | * सी++ वर्ग | ||
*हेडर फाइल | *हेडर फाइल | ||
*सोर्स कोड | *सोर्स कोड | ||
* सी ++ मानक | * सी++ मानक लाइब्रेरी | ||
*उद्देश्य सी | *उद्देश्य सी | ||
Line 231: | Line 223: | ||
* [http://my.safaribooksonline.com/book/programming/iphone/9781449397302/objective-c-classes/_header_file_and_implementation_file Header File and Implementation File] | * [http://my.safaribooksonline.com/book/programming/iphone/9781449397302/objective-c-classes/_header_file_and_implementation_file Header File and Implementation File] | ||
{{DEFAULTSORT:Class Implementation File}} | {{DEFAULTSORT:Class Implementation File}} | ||
[[Category: Machine Translated Page]] | [[Category:Created On 15/05/2023|Class Implementation File]] | ||
[[Category: | [[Category:Machine Translated Page|Class Implementation File]] | ||
[[Category:Pages with script errors|Class Implementation File]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:ऑब्जेक्टिव-सी कोड के उदाहरण वाले लेख|Class Implementation File]] | |||
[[Category:वर्ग (कंप्यूटर प्रोग्रामिंग)|Class Implementation File]] | |||
[[Category:वस्तु-उन्मुख प्रोग्रामिंग भाषाएँ|Class Implementation File]] | |||
[[Category:सी ++|Class Implementation File]] |
Latest revision as of 16:20, 25 May 2023
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में, वर्ग कार्यान्वयन फ़ाइल का उपयोग अधिकाशतः वर्ग (कंप्यूटर प्रोग्रामिंग) की विधि (s) के लिए कार्यान्वयन कोड को सम्मिलित करने के लिए किया जाता है। सी और सी++ जैसी प्रोग्रामिंग भाषा इन कार्यान्वयन फ़ाइलों का उपयोग करती हैं | जिससे इन विधियों के अंतरापृष्ठ और कार्यान्वयन को अलग किया जा सके। [1]
अभिप्रेरण
इस संरचना का उपयोग करते हुए, वर्ग परिभाषा फ़ाइल भी बनाई जाती है | जिसमें वर्ग और उसके सदस्यों की घोषणा होती है। यदि वर्ग परिभाषा को सम्मिलित किया गया है और इसके विधियों के लिए कार्यान्वयन फ़ाइल उपलब्ध है, तो उपयोगकर्ता कक्षा के ऑब्जेक्ट (कंप्यूटर विज्ञान) को इंस्टेंस (कंप्यूटर विज्ञान) कर सकता है। इस संरचना का उद्देश्य कार्यान्वयन कोड को छिपाकर रखना है | किन्तु उपयोगकर्ता को रचना देखने की अनुमति देना है।[2][3] उपयोगकर्ता किसी ऑब्जेक्ट (कंप्यूटर विज्ञान) के सार्वजनिक अंतरापृष्ठ का उपयोग करते हैं | जिससे वस्तुओं को यथासंभव सरल बनाया जा सके और यह सुनिश्चित किया जा सके कि क्लाइंट कोड वर्ग के कार्यान्वयन के अनावश्यक विवरण के साथ उपयोगकर्ता को विचलित न करे।[4]
यह उपयोगकर्ता को प्रभावी रूप से कक्षा का उपयोग करने के लिए आवश्यक जानकारी की अनुमति देता है, किन्तु उसे संकलित कोड को हानि पहुँचाने से रोकता है।[5]
एक वर्ग कार्यान्वयन फ़ाइल की संरचना
कार्यान्वयन से इंटरफ़ेस को विभाजित करने के लिए एक वर्ग परिभाषा बनाते समय एक कार्यान्वयन फ़ाइल का उपयोग सी++ प्रोग्रामिंग भाषा में किया जाता है। शीर्षलेख फ़ाइल कक्षा के सभी सदस्य कार्यों (विधियों) और डेटा विधियों (फ़ील्ड) की घोषणा करेगी। [6][7][8]
कार्यान्वयन फ़ाइल में हेडर फ़ाइल में घोषित विधियों की वास्तविक परिभाषा या स्रोत कोड होगा। यह फ़ाइल हेडर ब्लॉक से प्रारंभ हो सकती है | जो टिप्पणियां प्रदान करती है | जो परिभाषित वर्ग के उद्देश्य का वर्णन करती है और वास्तविक फ़ाइल के निर्माण के बारे में कोई भी विवरण, जैसे कि फ़ाइल के लेखक और फ़ाइल को बनाया गया था।[9] इसमें सी++ मानक लाइब्रेरी से कोई लाइब्रेरी भी सम्मिलित हो सकता है | जिसका उपयोग फ़ाइल में घोषित विधियों में से किसी के द्वारा किया जाएगा। वर्ग कार्यान्वयन फाइल में सामान्यतः संबंधित हेडर फाइल को सम्मिलित करने के लिए रेखा होगी (नीचे उदाहरण देखें)।
सी++ में उदाहरण
उदाहरण वर्ग नामक एक वर्ग होगा उदाहरण वर्ग
. इस सी++ फाइल की हेडर फाइल का नाम उदाहरण वर्ग.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_;
};
उद्देश्य सी में उदाहरण
वर्ग कार्यान्वयन फ़ाइल को कैसे संरचित किया जाएगा इसका एक और उदाहरण ऑब्जेक्टिव-सी के साथ देखा जा सकता है | जिसका उपयोग आईओएस प्रोग्रामिंग में किया जाता है।[13]
यह उदाहरण वर्ग का उपयोग करेगा। इन कार्यान्वयन फ़ाइलों का उपयोग करते समय सी++ और ऑब्जेक्टिव-सी के बीच उल्लेखनीय अंतर फाइलों के अंत में उपयोग किए जाने वाले एक्सटेंशन हैं। सी++ में यह .cpp होगा [14] और उद्देश्य-सी में यह .m होगा |[15] किन्तु दोनों अपनी हैडर फ़ाइल के लिए एक ही .h एक्सटेंशन का उपयोग करेंगे | [16][17] जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है। यह उद्देश्य-सी में उदाहरण वर्ग.h का उदाहरण है |
#import <UIKit/UIKit.h>
@interface ExampleClass : NSObject {
// instance variable declarations go here
}
- (NSString*) name;
@end
यह उद्देश्य-सी में वर्ग की कार्यान्वयन फ़ाइल उदाहरण वर्ग.m का उदाहरण है |
#import "ExampleClass.h"
@implementation ExampleClass
- (NSString*) name {
return @"…";
}
@end
यह भी देखें
- सी++ वर्ग
- हेडर फाइल
- सोर्स कोड
- सी++ मानक लाइब्रेरी
- उद्देश्य सी
संदर्भ
- ↑ 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.