یک تابع عضو کلاس، تابعی است که تعریف یا نمونه اولیهاش درون تعریف کلاس قرار دارد. این تابع در اشیا عضو آن کلاس به کار رفته و به همه اعضای آن شی دسترسی دارد.
اجازه دهید از کلاسی که پیش از این تعریف کردیم اینجا نیز بهره بگیریم و به جای دسترسی مستقیم به عناصر آن، با استفاده از تابع عضو آنها را در اختیار بگیریم.
class Box { public: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box double getVolume(void);// Returns box volume };
توابع عضو را میتوان درون تعریف کلاس، تعریف کرد و یا با استفاده عملگر وضوح دامنه (:)(scope resolution operator) آنها را جداگانه تعریف کرد. تعریف یک تابع عضو درون تعریف کلاس باعث میشود که تابع به صورت inline اعلان شود، حتی اگر مشخصه inline صراحتاً استفاده نشود. بنابراین، میتوان تابع ()Volume را به صورت زیر تعریف کرد.
class Box { public: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box double getVolume(void) { return length * breadth * height; } };
میتوان همین تابع را خارج از کلاس و با استفاده از عملگر وضوح دامنه (::) به شکل زیر تعریف کرد.
double Box::getVolume(void) { return length * breadth * height; }
تنها نکته مهم در اینجا این است که باید نام کلاس را قبل از عملگر «::» قرار داد. تابع عضو را میتوان با استفاده از عملگر (.) روی یک شی به کار برد، در این صورت همانند مثال زیر، تابع روی داده مربوط به شی عمل میکند.
Box myBox; // Create an object myBox.getVolume(); // Call member function for the object
اجازه دهید مفاهیم بالا را برای تغییر دادن مقادیر اعضای مختلف کلاس به کار گیریم.
#include <iostream> using namespace std; class Box { public: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box // Member functions declaration double getVolume(void); void setLength( double len ); void setBreadth( double bre ); void setHeight( double hei ); }; // Member functions definitions double Box::getVolume(void) { return length * breadth * height; } void Box::setLength( double len ) { length = len; } void Box::setBreadth( double bre ) { breadth = bre; } void Box::setHeight( double hei ) { height = hei; } // Main function for the program int main() { Box Box1; // Declare Box1 of type Box Box Box2; // Declare Box2 of type Box double volume = 0.0; // Store the volume of a box here // box 1 specification Box1.setLength(6.0); Box1.setBreadth(7.0); Box1.setHeight(5.0); // box 2 specification Box2.setLength(12.0); Box2.setBreadth(13.0); Box2.setHeight(10.0); // volume of box 1 volume = Box1.getVolume(); cout << "Volume of Box1 : " << volume <<endl; // volume of box 2 volume = Box2.getVolume(); cout << "Volume of Box2 : " << volume <<endl; return 0; }
با اجرای کد فوق، خروجی زیر حاصل می شود.
Volume of Box1 : 210 Volume of Box2 : 1560
منبع: ترجمه از سایت tutorialspoint.com
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.