欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

在C++中:转换构造函数与隐式类型转换的运用

最编程 2024-07-27 07:14:11
...

换构造函数(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;

推荐阅读