zoukankan      html  css  js  c++  java
  • C++转换构造函数和隐式转换函数

    换构造函数(conversion constructor function) 的作用是将一个其他类型的数据转换成一个类的对象。
    当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数。
    转换构造函数是对构造函数的重载。

    参考链接1
    参考链接2

    struct RecallTerm {
        RecallTerm(std::string t) {
            term = t;
        }
        std::string term;
    };
    
    string c = ":";
    RecallTerm aa = c;
    

    用转换构造函数可以将一个指定类型的数据转换为类的对象。但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个Complex类对象转换成double类型数据)。
    如果不想让转换构造函数生效,也就是拒绝其它类型通过转换构造函数转换为本类型,可以在转换构造函数前面加上explicit!例如:

    struct RecallTerm {
        explicit RecallTerm(std::string t) {
            term = t;
        }
        std::string term;
    };
    
    string c = ":";
    // 下面会报错
    //RecallTerm aa = c;
    












    种一棵树最好的时间是十年前,其次是现在。
  • 相关阅读:
    jQuery序列化
    jQuery的ajax与django传参
    Django中的cookie与session操作
    Django文件上传
    Django表单的简单应用
    django加载模板文件
    django-admin.py创建项目失败解决方法
    django笔记
    unity创建xml与加载xml
    JavaScript相关
  • 原文地址:https://www.cnblogs.com/islch/p/15642699.html
Copyright © 2011-2022 走看看