仿C#或Java基础类型自定义

admin2024-05-15  1

class Int{
private:
  int _value = 0;
public:
  operator int() const{  // 隐式转换
      return _value;
  }
  // 显式转换
  explicit operator int*() const { return nullptr; }
  operator=(const int page){
        _value =page;
    }
  operator float() const{
       return static_cast<float>(_value);
  }
  operator auto() const { return 10; } // OK:推导的返回类型,C++14
};

operator类型名():  // C++11

explicit ( 表达式 ) operator 转换类型标识    // C++20

Int i;
Int newValue = i + 5;

其它示例:

class A
{
public:
        operator char*() const  // 隐式转换

        {
            return data;//当从其他类型转换到char*时自动调用
        }
private:
        char* data;
};


创作不易,小小的支持一下吧!

仿C#或Java基础类型自定义,第1张仿C#或Java基础类型自定义,第2张

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!