C++ primer 中文版P461页

461页message类有一个地方不太明白:

    explicit Message(const std::string &str=""):
        contents(str){}

这里加explicit属性是为什么呢?求大神指教^ ^谢谢

显示构造函数,不要进行隐式转换,也就是编译器不会对你的对象赋值等情况进行类型转换,当你在不同类型赋值时,需要你代码明确指定,

此处表明当其它类和Message类进行类型转换时必须是显示的,不能能进行隐式转换;即必须提供明确的方法进行转换。