c++8

来源:互联网 发布:淘宝代做课程设计 编辑:程序博客网 时间:2024/05/29 14:11

1.使用友元函数和成员函数实现一元运算符的重载

#include<iostream>using namespace std;class Complex{public:friend Complex myAdd(Complex &c1, Complex &c2);friend Complex operator+(Complex &c1, Complex &c2);friend Complex& operator++(Complex &c1);friend Complex operator++(Complex &c1,int);Complex(int a = 0,int b=0){this->a = a;this->b = b;}void printCom(){cout << a << "+" << b << "i" << endl;}//成员函数的方法实现前--重载Complex& operator--(){this->a--;this->b--;return *this;}//成员函数实现后置--Complex operator--(int){Complex tmp = *this;this->a--;this->b--;return tmp;}protected:private:int a;int b;};Complex myAdd(Complex &c1,Complex &c2){Complex tmp(c1.a + c2.a, c1.b+c2.b);return tmp;}Complex operator+(Complex &c1, Complex &c2){Complex tmp(c1.a + c2.a, c1.b + c2.b);return tmp;}//前置++Complex& operator++(Complex &c1){c1.a++;c1.b++;return c1;}//后置++Complex operator++(Complex &c1,int){Complex tmp = c1;c1.a++;c1.b++;return tmp;}void main(){int a = 0, b = 0;int c;c = a + b;//基础数据类型,编译器知道如何运行Complex c1(1, 2), c2(3, 4);//Complex c3;//c3 = c2 + c1;//用户自定义的数据类型,编译器不知道如何运算Complex c4 = c1 + c2;c4.printCom();//前置++操作符,用全局函数实现++c1;c1.printCom();//前置--操作符,用成员函数方法--c1;c1.printCom();//后置++操作符,用全局函数c1++;c1.printCom();//后置--操作符,用成员函数c1--;c1.printCom();cout << "hello.." << endl;system("pause");return;}


原创粉丝点击