zoukankan      html  css  js  c++  java
  • c++修饰符重载

    主要有两种方式:利用友元、类成员方法。

    #include <iostream>
    using namespace std;
    
    /**
    *演示修饰符重载
    *一般都用成员方法重载
    *特殊的没有办法修改核心库的用友元的方法来重载 例如<<
    */
    class Chicken
    {
    private:
        int weight;
    public:
        Chicken(int weight)
        {
            this->weight = weight;
        }
        ~Chicken()
        {
            delete this;
        }
        int getWeight();
        void setWeight(int weight);
        friend int operator +(Chicken & a,Chicken & b);
        int operator -(Chicken & a);
        friend int operator ++(Chicken & a);
        int operator --();
        friend int operator ++(Chicken & a,int);
        int operator --(int);
        friend ostream & operator << (ostream & out,Chicken & a);
    };
    
    int Chicken::getWeight()
    {
        return this->weight;
    }
    
    void Chicken::setWeight(int weight)
    {
        this->weight = weight;
    }
    
    int operator +(Chicken & a,Chicken & b)
    {
        return a.weight+b.weight;
    }
    
    int Chicken::operator -(Chicken & a)
    {
        return this->weight-a.weight;
    }
    
    int operator ++(Chicken & a)
    {
        a.weight ++;
        return a.weight;
    }
    
    int Chicken::operator --()
    {
        this->weight --;
        return this->weight;
    }
    
    int operator ++(Chicken & a,int)
    {
        int b = a.weight;
        a.weight ++;
        return b;
    }
    
    int Chicken::operator --(int)
    {
        int b = this->weight;
        this->weight --;
        return b;
    }
    
    ostream & operator << (ostream & out,Chicken & a)
    {
        cout << "The weight is: " << a.weight;
        return out;
    }
    
    
    int main()
    {
        Chicken a(20);
        Chicken b(10);
        cout << a.getWeight() << endl;
        cout << b.getWeight() << endl;
        cout << a-b << endl;
        cout << a+b << endl;
        cout << ++a << endl;
        cout << a.getWeight() << endl;
        cout << --a << endl;
        cout << a.getWeight() << endl;
        cout << a++ << endl;
        cout << a.getWeight() << endl;
        cout << a-- << endl;
        cout << a.getWeight() << endl;
        cout << a << endl;
        return 0;
    }
  • 相关阅读:
    ZH奶酪:PHP 使用DOMDocument抓取网页
    PHP Warning: DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity,
    ZH奶酪:PHP 执行时间Fatal error: Maximum execution time of...
    ZH奶酪:PHP (爬虫)下载图片
    ZH奶酪:PHP的cURL库
    PHP 字符串编码的转换
    PHP http_build_query()方法
    ZH奶酪:使用PHP调用REST API
    PHP全局变量
    HTML页面跳转的5种方式
  • 原文地址:https://www.cnblogs.com/godehi/p/8932011.html
Copyright © 2011-2022 走看看