zoukankan      html  css  js  c++  java
  • operator用法:隐式类型转换

    operator它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。
    1、操作符重载
    C++可以通过operator实现重载操作符,格式如下:类型T operator 操作符 (),比如重载+, 
    template<typename T> class A
    {
    public:
         const T operator+(const T& rhs)
         {
             return this->m_ + rhs;
         }
    private:
         T m_;
    };
     
     
     
     
    2、 操作隐式转换
    C++可以通过operator实现重载隐式转换,格式如下: operator T (),其中T是一个类型,比如下面这个例子

    class A
    {
    public:
        explicit A(int b=0){
            b_=b;
        }
        operator   int() { return this->b_; } 
     
    private:
        int b_;
    };
     
    int main()  
    { 
        A a;
        int b=a;
        cout<<b;
        return 0;  
    }
    当执行b=a时a就发生了隐式类型转换,实际上执行了a.opertor int()函数 即
    int b=a相当于 int b=a.b_

     
  • 相关阅读:
    Go视频教程
    Mysql常用
    同步Redux
    React跨组件通讯
    React组件通讯
    React
    git生成公钥和私钥
    常用经典算法---希尔排序
    string和c_str()使用时的坑
    腾讯云python网站开发环境搭建
  • 原文地址:https://www.cnblogs.com/zhaobinyouth/p/9921171.html
Copyright © 2011-2022 走看看