jQuery火箭图标返回顶部代码

c++运算符重载

用成员函数重载运算符:

 1 #include "stdafx.h"
 2 #include<iostream>
 3 using namespace std;
 4 class Complex {
 5 private:
 6     double real, imag;
 7 public:
 8     Complex(double r = 0.0, double i = 0.0);
 9     Complex operator+(Complex c);
10     Complex operator-(Complex c);
11     void display();
12 };
13 
14 Complex::Complex(double r, double i)
15 {
16     real = r;
17     imag = i;
18 }
19 
20 Complex Complex::operator+(Complex c)
21 {
22     Complex temp;
23     temp.real = real + c.real;
24     temp.imag = imag + c.imag;
25     return temp;
26 }
27 
28 Complex Complex::operator-(Complex c)
29 {
30     Complex temp;
31     temp.real = real - c.real;
32     temp.imag = imag - c.imag;
33     return temp;
34 }
35 
36 void Complex::display()
37 {
38     char ch;
39     ch = (imag < 0) ? ' ' : '+';
40     cout << real << ch << imag << "i" << endl;
41 }
42 
43 int main()
44 {
45     Complex c1(12.4, 13.3);
46     Complex c2(14.4, 26.5);
47     Complex c;
48     cout << "c1=";
49     c1.display();
50     cout << "c2=";
51     c2.display();
52     c = c1 + c2;
53     cout << "c1+c2=";
54     c.display();
55     c = c1 - c2;
56     cout << "c1-c2=";
57     c.display();
58     return 0;
59 }

 

 

用友元函数重载运算符:

 1 #include "stdafx.h"
 2 #include<iostream>
 3 using namespace std;
 4 class Complex {
 5 private:
 6    double real, imag;
 7 public:
 8    Complex(double r = 0.0, double i = 0.0);
 9    friend Complex operator+(Complex c1,Complex c2);
10    friend Complex operator-(Complex c1,Complex c2);
11 void display();
12 };
13 
14 Complex::Complex(double r, double i)
15 {
16    real = r;
17    imag = i;
18 }
19 
20 Complex operator+(Complex c1,Complex c2)
21 {
22    Complex temp;
23    temp.real = c1.real + c2.real;
24    temp.imag = c1.imag + c2.imag;
25    return temp;
26 }
27 
28 Complex operator-(Complex c1,Complex c2)
29 {
30    Complex temp;
31    temp.real = c1.real - c2.real;
32    temp.imag = c1.imag - c2.imag;
33    return temp;
34 }
35 
36 void Complex::display()
37 {
38    char ch;
39    ch = (imag < 0) ? ' ' : '+';
40    cout << real << ch << imag << "i" << endl;
41 }
42 
43 int main()
44 {
45    Complex c1(12.4, 13.3);
46    Complex c2(14.4, 26.5);
47    Complex c;
48    cout << "c1=";
49    c1.display();
50    cout << "c2=";
51    c2.display();
52    c = c1 + c2;
53    cout << "c1+c2=";
54    c.display();
55    c = c1 - c2;
56    cout << "c1-c2=";
57    c.display();
58    return 0;
59 }

 

单目运算符重载(自加·自减)

用成员函数重载运算符:

 1 #include "stdafx.h"
 2 #include<iostream>
 3 using namespace std;
 4 class Counter {
 5 private:
 6    unsigned value;            //unsigned不加类型名时,默认表示无符号整型
 7 public:
 8    Counter() { value = 0; }
 9    Counter(int i) { value = i; }
10    Counter operator++();
11    Counter operator++(int);
12    Counter operator--();
13    Counter operator--(int);
14    void display() { cout << value << endl; }
15 };
16 
17 Counter Counter::operator++()
18 {
19    value++;
20    return *this;
21 }
22 
23 Counter Counter::operator++(int)
24 {
25    Counter temp;
26    temp.value = value++;
27    return temp;
28 }
29 
30 Counter Counter::operator--()
31 {
32    value--;
33    return *this;
34 }
35 
36 Counter Counter::operator--(int)
37 {
38    Counter temp;
39    temp.value = value--;
40    return temp;
41 }
42 
43 int main()
44 {
45    Counter n(10);
46    Counter c;
47    c = ++n;
48    cout << "前缀++运算符计算结果:" << endl;
49    cout << "n=", n.display();
50    cout << "c=", c.display();
51    c = n++;
52    cout << "后缀++运算符计算结果:" << endl;
53    cout << "n=", n.display();
54    cout << "c=", c.display();
55    c = --n;
56    cout << "前缀--运算符计算结果:" << endl;
57    cout << "n=", n.display();
58    cout << "c=", c.display();
59    c = n--;
60    cout << "后缀--运算符计算结果:" << endl;
61    cout << "n=", n.display();
62    cout << "c=", c.display();
63    return 0;
64 }

 

用友元函数重载运算符:

 1 #include "stdafx.h"
 2 #include<iostream>
 3 using namespace std;
 4 class Counter {
 5 private:
 6    unsigned value;       //unsigned不加类型名时,默认表示无符号整型
 7 public:
 8    Counter() { value = 0; }
 9    Counter(int i) { value = i; }
10    friend Counter operator++(Counter&);
11    friend Counter operator++(Counter& ,int);
12    friend Counter operator--(Counter&);
13    friend Counter operator--(Counter& ,int);
14    void display() { cout << value << endl; }
15 };
16 
17 Counter operator++(Counter& p)
18 {
19    p.value++;
20    return p;
21 }
22 
23 Counter operator++(Counter& p,int)
24 {
25    Counter temp;
26    temp.value = p.value++;
27    return temp;
28 }
29 
30 Counter operator--(Counter& p)
31 {
32    p.value--;
33    return p;
34 }
35 
36 Counter operator--(Counter& p ,int)
37 {
38    Counter temp;
39    temp.value = p.value--;
40    return temp;
41 }
42 
43 int main()
44 {
45    Counter n(10);
46    Counter c;
47    c = ++n;
48    cout << "前缀++运算符计算结果:" << endl;
49    cout << "n=", n.display();
50    cout << "c=", c.display();             //这句话相当于 cout<<"c=";
51    c = n++;                                           //c.display();
52    cout << "后缀++运算符计算结果:" << endl;
53    cout << "n=", n.display();
54    cout << "c=", c.display();
55    c = --n;
56    cout << "前缀--运算符计算结果:" << endl;
57    cout << "n=", n.display();
58    cout << "c=", c.display();
59    c = n--;
60    cout << "后缀--运算符计算结果:" << endl;
61    cout << "n=", n.display();
62    cout << "c=", c.display();
63    return 0;
64 }

 

最后来一组运行结果:

posted @ 2018-04-12 17:39  迷途纸鸢  阅读(148)  评论(0编辑  收藏  举报