Member function (मेम्बर फंक्शन):-
It represents behavior and operations of class which will be performed in data member of class. Generally, we represent data member in private section of a class and member function represent as public interface. We can declare or define member function in all three sections i.e. public, private and protected in a class. There are two types of declaration/definition of member function:-
यह क्लास के व्यव्हार एवं संक्रियाओ को प्रदर्शित करता है जिन्हें क्लास के डाटा मेम्बर्स पर लागू किया जाएगा। सामान्यतः हम क्लास के डाटा मेम्बर को प्राइवेट सेक्शन में दर्शाते है तथा मेम्बर फंक्शन क्लास के पब्लिक इंटरफ़ेस के रूप में कार्य करता है। हम क्लास के तीनो सेक्शन में मेम्बर फंक्शन को घोषित या परिभाषित कर सकते है जैसे पब्लिक, प्राइवेट या प्रोटेक्टेड। किसी मेम्बर फंक्शन को निम्न दो प्रकार से घोषित या परिभाषित किया जा सकता है:-
1. Outside the class template (क्लास टेम्पलेट के बाहर ):-
In this type of function definition, we declare member function within a class and define it outside the class. We can use class name and scope resolution operator(::) to represent relationship between class and its member function. Outside member function of a program takes memory bytes at one time and it will share between all the class objects. There is sufficient difference between member function and normal function because only member function has class name identity with its header part.
इस प्रकार की फंक्शन की परिभाषा में , हम मेम्बर फंक्शन को क्लास के अन्दर घोषित करते है एवं क्लास के बाहर(बॉडी सहित) परिभाषित करते है। मेम्बर फंक्शन एवं उसकी क्लास के मध्य सम्बन्ध दर्शाने के लिए हम फंक्शन की परिभाषा में, क्लास के नाम के साथ स्कोप रेसोल्यूशन ऑपरेटर(::) का प्रयोग करते है। किसी प्रोग्राम का आउटसाइड मेम्बर फंक्शन केवल एक बार मेमोरी बाइटस ग्रहण करता है एवं यह क्लास के सभी ऑब्जेक्टस के मध्य शेयर किया जाता है। मेम्बर फंक्शन एवं सामान्य फंक्शन में पर्याप्त अंतर होता है केवल मेम्बर फंक्शन ही अपनी पहचान के लिए हैडर पार्ट में क्लास का नाम रखता है।
Syntax:-
return_type class_name :: function_name (arguments){
statement(s);
..............
..............
}
Example:-
statement(s);
..............
..............
}
Example:-
void student :: getstudent (){
cout<<”student detail :- “<<endl;
cout<< roll no= ”<<rollno<<endl<<”name= ”<<name <<endl;
}
Syntax:-
cout<<”student detail :- “<<endl;
cout<< roll no= ”<<rollno<<endl<<”name= ”<<name <<endl;
}
2. Inside the class template /inline function (क्लास टेम्पलेट के अन्दर/ इनलाइन फंक्शन):-
In this type of function definition, we define member function within a class with its body statements.This type of member function is called inline function. Here, there is no need to write declaration of a function. It works similar to a macro. It means inline function takes separate memory bytes for every object of class. So, It is necessary that inline function doesn’t contain more than one or two statements. If programmer wants to convert an outside member function to inline function then he/she can write inline keyword before the definition of function.
इस प्रकार की फंक्शन की परिभाषा में , हम मेम्बर फंक्शन को क्लास के अन्दर उसके बॉडी स्टेटमेंटस सहित परिभाषित करते है। इस प्रकार के मेम्बर फंक्शन को इनलाइन फंक्शन कहा जाता है। यहाँ फंक्शन को घोषित करने की आवश्यकता नहीं होती है। यह मैक्रो की भांति व्यव्हार करता है अर्थात प्रत्येक क्लास ऑब्जेक्ट के लिए अलग मेमोरी बाइटस ग्रहण करता है इसीलिए यह आवश्यक है कि इनलाइन फंक्शन में एक या दो से अधिक स्टेटमेंटस न रखे जाये। यदि प्रोग्रामर किसी आउटसाइड मेम्बर फंक्शन को इनलाइन फंक्शन में परिवर्तित करना चाहता है तब वह मेम्बर फंक्शन की परिभाषा के पूर्व inline कीवर्ड का प्रयोग कर सकता है।
1.) return_type function_name (arguments){
Statement (s);
..........
.........
}
2.) inline return_type class_name :: function_name (arguments){
Statement (s);
..........
.........
}
Statement (s);
..........
.........
}
2.) inline return_type class_name :: function_name (arguments){
Statement (s);
..........
.........
}
Example:-
1.) void getstudent(){
cout<<”student detail :- “<<endl;
cout<< roll no= ”<<roll no<<endl<<”name= ”<<name <<endl;
}
2.) inline void student :: getstudent(){
cout<<”student detail :- “<<endl;
cout<< roll no= ”<<roll no<<endl<<”name= ”<<name <<endl;
}
cout<< roll no= ”<<roll no<<endl<<”name= ”<<name <<endl;
}
No comments:
Post a Comment