C++ இல் உள்ள எடுத்துக்காட்டு நிரல்கள் - C++ செயற்குறி பணிமிகுப்பு | 11th Computer Science : Chapter 15 : Polymorphism
செயற்குறி பணிமிகுப்பு
செயற்குறி பணிமிகுப்பு என்பது +,++,-,-,+=,-=*<> போன்ற வழக்கிலுள்ள C++ செயற்குறிகளுக்கு கூடுதலான செயல்பாடுகளை வரையறுப்பதைக் குறிக்கிறது. இதுவும் ஒரு பல்லுருவாக்க செயல் எனலாம். ஏனெனில், இதில் செயற்குறி பணிமிகுக்கப்பட்டு, செயற்குறிக்கு நிரலர் விரும்புகிற பொருளை வழங்குகிறது.
எடுத்துக்காட்டாக '+' என்ற செயற்குறியை பணிமிகுப்பு முழு எண்ணிற்கு கூடுதலையும், சரத்திற்கு இணைத்தல் போன்ற செயல்பாட்டினையும் பல்வேறு தரவினங்களுக்கு பயன்படுத்தி பணிமிகுப்பு செய்யலாம். C++ மொழியில், சில செயற்குறிகளை தவிர்த்து, அனைத்து செயற்குறிகளையும் பணி மிகுப்பு செய்ய முடியும்.
பணிமிகுப்பு செய்ய முடியாத செயற்குறிகள் பின்வருமாறு
• வரையெல்லை செயற்குறி (::)
• sizeof செயற்குறி
• உறுப்பு தேர்வி (member selector - .)
• உறுப்பு சுட்டல் தேர்வி (member pointer selector - *)
• நிபந்தனை செயற்குறி (conditional operator - ?:)
செயற்குறி பணிமிகுப்பின் கட்டளையமைப்பு (Operator Overloading Syntax)
செயற்குறி பணிமிகுப்பின் வரம்பெல்லைகள் (Restrictions on Operator Overloading)
செயற்குறி பணிமிகுப்பினை நடைமுறைப்படுத்தும் போது பின்வரும் வரம்பெல்லைகளைக் கவனத்தில் கொள்ள வேண்டும்.
1. ஒரு செயற்குறியின் முன்னுரிமையும், திசைமுகத்தையும் மாற்ற இயலாது.
2. புதிய செயற்குறிகளை உருவாக்க முடியாது. ஏற்கனவே இருக்கும் செயற்குறிகளை மட்டுமே பணிமிகுக்க முடியும்.
3. ஒரு செயற்குறியின் அடிப்படை செயல் முறையை மறுவரையறை செய்ய முடியாது. முழு எண்கள் கூட்டப்படும் முறையை மாற்றி அமைக்க முடியாது, ஆனால் கூடுதல் செயல்பாட்டினை அந்த செயற்குறிக்கு வழங்கலாம்.
4. பணிமிகுக்கப்பட்ட செயற்குறிகள் தானமைவு செயலுருபுகளைக் கொண்டிருக்காது.
5. இரும செயற்குறிகளை பணிமிகுக்கும் போது, அச்செயற்குறியின் இடப்பக்கம் அமையும் பொருள், அது வரையறுக்கப்பட்டுள்ள இனக்குழுவின் பொருளாக இருக்க வேண்டும்.
நிரல் 15.6 ‘+' குறியீடு பயன்படுத்தி இரும செயற்குறி பணிமிகுத்தலை விளக்கும் எடுத்துக்காட்டு நிரல்
#include<iostream>
using namespace std;
class complex
{ int real,img;
public:
void read()
cout<<"\nEnter the REAL PART : ";
cin>>real;
cout<<"\nEnter the IMAGINARY PART:";
cin>>img;
}
complex operator +(complex c2)
{
complex c3;
c3.real=real+c2.real;
c3.img=img+c2.img;
return c3;
}
void display()
{ cout<<reak<<"+"<<img<<"i"; }
};
int main()
{
complex cl,c2,c3;
int choice, cont;
cout<<"\n\nEnter the First Complex Number";
cl.read();
cout<<"\n\nEnter the Second Complex Number";
c2.read();
c3=cl+c2; // binary + overloaded
cout<<"\n\nSUM = ";
c3.display();
return 0;
}
வெளியீடு
Enter the First Complex Number
Enter the REAL PART: 3
Enter the IMAGINARY PART : 4
Enter the Second Complex Number
Enter the REAL PART : 5
Enter the IMAGINARY PART : 8
SUM = 8+12i
நிரல் 15.7 செயற்குறி பணிமிகுப்பினைப் பயன்படுத்தி சரங்களை இணைக்கும் எடுத்துக்காட்டு நிரல்
#include<string.h>
#include<iostream>
using namespace std;
class strings
{
public:
char s[20];
void getstring(char str[])
{
strcpy(s,str);
}
void operator+(strings);
};
void strings::operator+(strings ob)
{
strcat(s,ob.s);
cout<<"\nConcatnated String is:"<<s;
}
int main()
{
strings ob1, ob2;
char string1[10], string2[10];
cout<<"\nEnter First String:";
cin>>string1;
ob1.getstring(string1);
cout<<"\nEnter Second String:";
cin>>string2;
ob2.getstring(string2);
//Calling + operator to Join/Concatenate strings
ob1+ob2;
return 0;
}
வெளியீடு
Enter First String:COMPUTER
Enter Second String:SCIENCE
Concatenated String is:COMPUTERSCIENCE