zoukankan      html  css  js  c++  java
  • 【旧博文】operator 类名()的用法

    在WINDOWS编程中有很多这样的情况,我定义一个句柄直接与窗体进行相等运算例如伪代码如下;

     HAND h;//句柄

     FORMINFO fi;//窗体类

    。。。。。。。

    h = fi;

    之后h就是窗体类的句柄。这种技术广泛应用与window的编程中。我们要问,两个毫不相干的类,怎么可以直接相等呢?看一下代码

    #include <iostream>

    using namespace std;

    class LCD

    {

    public:

           void info()

           {

                  cout<<"这是显示器:"<<id<<endl;

           }

        int id;

    };

    class Computer//电脑

    {

    public:

    Computer()

    {

       _lcd.id = count++;

    }

           operator LCD()

           {

                  return this->_lcd;

           }

           void info()

           {

                  cout<<"这是电脑"<<endl;

           }

    protected:

           LCD _lcd;

           static int count;

    };

    int Computer::count = 0;

    int main()

    {

           Computer c;

           Computer d;

           Computer e;

           c.info();

           LCD lcd = e;

           LCD lc = d;

           lcd.info();

           lc.info();

           return 1;

    }

    关键是

           operator LCD()

           {

                  return this->_lcd;

           }

    的使用实现了可以直接赋值。

    你也可以扩展这个类,使其可以返回很多类型。

  • 相关阅读:
    CString与char *互转总结
    string 与char* char[]之间的转换
    VC++下使用SQLite数据库
    VC连接数据库方式
    C/C++中判断某一文件或目录是否存在
    漂亮的CSS按钮样式集以及在线生成工具
    PhpStorm 4.0 & 5.0 部署本地Web应用 (转)
    PHP的serialize序列化数据与JSON格式化数据
    c/c++中产生随机数
    [STL系列]开篇简单介绍
  • 原文地址:https://www.cnblogs.com/ldr123/p/2389607.html
Copyright © 2011-2022 走看看