zoukankan      html  css  js  c++  java
  • 代理模式以及operator>()的重载

    重载operator->()可以增加一些附加的操作,比如计数

    #include<iostream>
    using namespace std;

    class Image{
    public:
        void Draw(int a,int b)
        {
            cout<<"a="<<a<<"b="<<b<<endl;
        }
    };
    class Imageptr
    {
        public:
            Imageptr(char* name);
            virtual ~Imageptr();
            
            void Draw(int a,int b);
            void LoadImage();
            Image* operator->();//对他进行重载之后,调用的时候先调用这个
            Image& operator*();
        private:
            char* ImageFileName;
            Image* _image;
    };

    Imageptr::Imageptr(char* name)
    {
        ImageFileName=name;
        _image=0;
    }
    Imageptr::~Imageptr()
    {
        delete ImageFileName;
    }
    void Imageptr::LoadImage()
    {
        _image=new Image();
    }
    Image* Imageptr::operator->()
    {
        LoadImage();
    }
    Image& Imageptr::operator*()
    {
        LoadImage();
    }

    void Imageptr::Draw(int a,int b)
    {
        _image->Draw(a,b);
    }
    int main()
    {
        
        Imageptr p("zhang");
        p->Draw(1,2);
        
        
        
        system("pause");
        return 0;
    }

  • 相关阅读:
    swift NSComparator
    Java mac 上编写Java代码
    四舍五入、上取整、下取整
    数组排序
    删除xcode 里的多余证书
    启动画面 设置
    CGFloat Float 互转
    navigationController pop的几种方法
    iOS 获取键盘相关信息
    eclipse代码格式化
  • 原文地址:https://www.cnblogs.com/zhanglanyun/p/2502247.html
Copyright © 2011-2022 走看看