What is the difference between different ways of overloading C++ operators
C++ operator overloading different ways of what is the difference, many novices are not very clear, in order to help you solve this problem, the following editor will explain in detail for you, people with this need can come to learn, I hope you can gain something.
C++ programming language can be seen as an upgraded version of the C language, it can support all the functions of the C language, but also has a great improvement in other aspects. Where, in C++ operator overloading, + +,-- you need to specify whether + + (-) is before or after the Operand. The difference is as follows:
The C++ operator overload code has been tested correctly (at least I have no problem here ^ _ ^)
# include
< iostream># include
< cstdlib>Using namespace std; template
< typename T>Class A {public: a (): M0 {} / / + const T operator + (const T & rhs) {/ / need to be repaired, but see it is only a demo return (this- > m + rhs);} / /-const T operator-(const T & rhs) {/ / need to be repaired, but see it is only a demo return (this- > m _-rhs);} T getM () {return m _ } / / + + the previous pattern, which returns a reference, permits + An A & operator + () {(this- > m _) + +; return * this;} / / + after that, a new type A variable is returned here and is unchangeable / / in order to prevent the occurrence of const An operator + (int a) {A
< T>B = * this; (this- > m _) + +; return b;} private: t int;}; int main (void) {int I = 0; cout
< < ++++i< < endl; // i++++ is not allowed A< int>A; A
< int>B = + + a; cout
< < b.getM()< < endl; A< int>C = astatine; cout < < c.getM () < < endl; cout < < a.getM () < < endl; int t = axi2; cout < < t < < endl; system ("pause"); return 0;} is it helpful for you to read the above content? If you want to know more about the relevant knowledge or read more related articles, please follow the industry information channel, thank you for your support.