Minus Operator Overloading

Minus Operator Overloading: निम्न Statement को देखिए:

alpha = – beta;

 इस Statement में हम alpha Variable में beta Variable के Negative मान को Assign कर रहे हैं। यानी यदि beta का मान 21 है तो alpha का मान -21 हो जाता है। यहां हमें ये जानना जरूरी है कि – Operator किसी Object के साथ किस प्रकार की प्रक्रिया करता है।  कई बार हमें एक Object में से दूसरे Object को घटाना होता है।

मानलो कि हमें एक English Value में से दूसरी English Value को घटाना है। इस स्थिति में हमें एक Negative English मान को Handle करना होता है। हम यहां पर ये मान रहे हैं कि Object का feet Data Member Negative मान को Represent कर रहा है Inch नहीं। यदि हम चाहें तो feet व inch दोनों से ही Negative मान को Represent करवा सकते हैं।  इस स्थिति में हमें Object के मान को Negative मान में Convert करके Use करने के लिए Operator को Overload करना पडता है। इसे समझने के लिए निम्न Program देखिए:

// Program
	#include <iostream.h>
	class English                     	// English distances
	{
	   private:
		  int feet;
		  float inches;

	   public:                       	
		// no-Argument Constructor
		  English() : feet(0), inches(0.0)
		  {  }

		 // 2-Argument Constructor
		  English(int f, float i) : feet(f), inches(i)
		  {  }

		  void get()                 	// user input
		  {
			 cout << "   Enter feet: ";   cin >> feet;
			 cout << "   Enter inches: "; cin >> inches;
		  }

		  void display()              	// display
		  {
			 if(feet<0)
				cout << "-(" << -feet << "\'-" << inches << "\")";
			 else
				cout << feet << "\'-" << inches << '\"';
		  }

		  English operator-()         	// negation operator
		  {                        	// (unary minus)
			 return English(-feet, inches);
		  }
		 // subtraction operator

		  English operator-(English right)
		  {
			 int tfeet = feet - right.feet;
			 int tinches = inches - right.inches;
			 if(tinches < 0)
			 {
				tinches += 12.0;
				tfeet -=1;
			 }
			 return English(tfeet, tinches);
		  }
	};  // end English class

	void main()
	{
	   English man(6, 2.0);
	   English horse(7, 0.0);
	   English difference;

	   difference = man - horse;      	// subtraction

	   cout << "\ndifference = ";
	   difference.display();

	   difference = -difference;      	// unary minus

	   cout << "\n-difference = ";
	   difference.display();
	}

इस Program में operator-() Function का काम यही है कि इसे जिस Object के Reference में Call किया गया है उस Object के feet Variable का Sign Change करके Object को Return कर देता है। हालांकि ये Operator स्वयं के मान को परिवर्तित नहीं करता है।

इस उदाहरण में Subtraction Operator (-) उसी तरह से काम करता है, जिस तरह से TTime के उदाहरण में + Operator करता है। ये उचित मानों को घटाता है, Carry Flag Check करता है और स्वयं के Object या Argument Object किसी के भी मान को Change किए बिना Result को Return करता है। हमने इस Program में display() Member Function को Change किया है, ताकि वह Negative मानों को Output में Display कर सके। इस Program का Interaction कुछ निम्नानुसार होता है:

difference = -(1′-2″)
-difference = 1′-2″

Main() Function में दो English प्रकार के मानों में से एक मान को घटाया जाता है और Result को एक तीसरे English Object difference में Store किया जाता है। ये Object दोनों Objects के बीच के अन्तर को Output में Display करता है। (Minus Operator Overloading – TutorialsPoint)

Unary Operator Overloading in C++ - Increment Operator
Type Conversion - Basic to Class | Class to Basic

CPP Programming Language in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C++ Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C++ Programming Language in Hindi | Page: 666 | Format: PDF

BUY NOW GET DEMO REVIEWS