C++ இல் உள்ள எடுத்துக்காட்டு நிரல்கள் - C++ காண்புநிலை பாங்குகள் | 11th Computer Science : Chapter 16 : Inheritance
காண்புநிலை பாங்குகள் (Visibility modes)
மரபுரிமத்தின் முக்கியமான பண்புக்கூறு என்னவெனில், அடிப்படை இனக்குழுவின் எந்த உறுப்பினை தருவிக்கப்பட்ட இனக்குழு மரபுவழி பெற்றுக்கொள்ள முடியும் என்பதை தெரிந்து கொள்வதாகும். இவை காண்புநிலை பாங்குகளைக் கொண்டு நிறைவேற்றப்படுகிறது.
தருவிக்கப்பட்ட இனக்குழு அடிப்படை இனக்குழுவை அணுகும் முறையை காண்பு நிலை பாங்குகள் கட்டுப்படுத்துகிறது. private, public, protected என்ற மூன்று காண்புநிலை பாங்குகள் உள்ளன. தானமைவு காண்புநிலை private ஆகும். காண்புநிலை பாங்கும், அணுகுநிலை வரையறுப்பிகளும் ஒன்று போல் இருந்தாலும், முக்கிய வேறுபாடு என்னவெனில் அணுகியல்பு வரையறுப்பிகள் இனக்குழுவிற்குள் அமைந்திருக்கும் உறுப்புகளின் அணுகுதலை கட்டுபடுத்தும் ஆனால் காண்புநிலைப் பாங்குகள் இனக்குழுவிற்குள் இருக்கும் மரபுரிமையாக பெறப்பட்ட உறுப்புகளை அணுக பயன்படுகிறது.
Private காண்புநிலை பாங்கு
ஓர் அடிப்படை இனக்குழு private என்னும் அணுகியல்புடன் தருவிக்கப்படும் போது, அடிப்படை இனக்குழுவின் public மற்றும் protected உறுப்புகள் தருவிக்கப்படும் இனக்குழுவில் private உறுப்புகளாகக் கருதப்படுகின்றன.
Protected காண்புநிலை பாங்கு
ஓர் அடிப்டை இனக்குழு protected என்னும் அணுகியல்புடன் தருவிக்கப்படும் போது, அடிப்படை இனக்குழுவின் protected மற்றும் public உறுப்புகள், தருவிக்கப்படும் இனக்குழுவில் protected உறுப்புகளாக கருதப்படுகின்றன.
public காண்புநிலை பாங்கு
ஓர் அடிப்படை இனக்குழு public என்னும் அணுகியல்புடன் தருவிக்கப்படும் போது, அடிப்படை இனக்குழுவின் protected உறுப்புகள், தருவிக்கப்படும் இனக்குழுவில் protected உறுப்புகளாகவும், public உறுப்புகள் public உறுப்புகளாக கருதப்படுகின்றன.
குறிப்பு
இனக்குழுக்கள் public, private, protected என எந்த வகையிலும் தருவிக்கப்பட்டாலும், அடிப்படை இனக்குழுவின் private உறுப்புகள் தருவிக்கப்படும் இனக்குழுவில் மரபுரிமையாக பெறப்படுவதில்லை. அதாவது தருவிக்கப்பட்ட இனக்குழுவில் தொடர்ந்து இருக்கம் ஆனால் அணுக முடியாது.
எடுத்துக்காட்டு நிரல் 16.3 பல்வேறு காண்புநிலை பாங்குகளை விளக்குகிறது.
//காண்புநிலைக் கொண்டு ஒரு வழி மரபுரிமத்தை செயல்படுத்தல்
#include <iostream>
using namespace std;
class Shape
{
private:
int count;
protected:
int width;
int height;
public:
void setWidth(int w)
{
width = w;
}
void setHeight(int h)
{
height = h;
}
};
class Rectangle: publicShape
{
public:
int getArea()
{
return (width * height);
}
};
int main()
{
Rectangle Rect;
Rect.setWidth(5);
Rect.setHeight(7);
// Print the area of theobject.
cout<< "Total area: "<<Rect.getArea() <<endl;
return 0;
}
வெளியீடு
Total area: 35
கீழ்கண்ட அட்டவணை, மரபுரிமம் செயல்படுத்துவதற்கு முன் இனக்குழுவினுள் வரையறுக்கப்பட்டுள்ள உறுப்புகளைக் கொண்டுள்ளது.
கீழ்கண்ட அட்டவணை, மரபுரிமம் செயல்படுத்தப்பட்ட பின்னர் இனக்குழுவினுள் வரையறுக்கப்பட்டுள்ள உறுப்புகளை கொண்டுள்ளது.
protected என்ற காண்பு நிலையுடன் rectangle என்ற இனக்குழு தருவிக்கப்பட்டால், rectangle இனக்குழுவின் பண்புக்கூறுகள் கீழ்கண்ட முறையில் மாறும்.
private என்ற காண்பு நிலை பாங்குடன் rectangle என்ற இனக்குழு தருவிக்கப்பட்டால், rectangle இனக்குழுவின் பண்புக்கூறுகள் கீழ்கண்ட முறையில் மாறும்.
ஏற்கனவே இருக்கும் இனக்குழுவின் அடிப்படையில் புதிய இனக்குழுவை தருவிக்கும் போது, காண்பு நிலை பாங்கின் அடிப்படையில் தருவிக்கப்பட்ட இனக்குழு அடிப்படை இனக்குழுவின் பண்புகளை மரபு வழி பெறுகிறது. எனவே, தேவைக்கேற்றார் போல், உரிய காண்பு நிலை பாங்கினை பயன்படுத்த வேண்டும்.
private என வகைப்படுத்தப்பட்ட அடிப்படை இனக்குழுவின் பண்புக்கூறுகளை தருவிக்கப்பட்ட இனக்குழுவின் உறுப்புகள் மட்டுமே பயன்படுத்திக்கொள்ள முடியும்.
ஆனால் அடிப்படை இனக்குழுவின் பண்புக்கூறுகள் தருவிக்கப்பட்ட இனக்குழுவின் அடிப்படையில் உருவாக்கப்பட்ட இனக்குழுவிற்கு இது பொருந்தாது.
protected என வகைப்பட்டுத்தப்பட்ட தருவிக்கப்பட்ட இனக்குழுவின் பண்புக்கூறுகளை தருவிக்கப்பட்ட இனக்குழுவின் உறுப்புகள் மட்டுமே எடுத்தாள முடியும். இனக்குழுவிற்கு வெளியே அதனை எடுத்தாள முடியாது.
public என வகைப்படுத்தப்பட்ட அடிப்படை இனக்குழுவின் பண்புக்கூறுகளை தருவிக்கப்பட்ட இனக்குழு மட்டுமல்லாது, இனக்குழுவுக்கு வெளியேயும் எடுத்தாள முடியும்.