如何解决如果在对象创建期间传递多个值,为什么带有一个参数的隐式构造函数会打印最后一个值?
我有一个“实体”类。它有一个用户定义的构造函数(隐式),带有一个参数,如下所示。
class Entity
{
public:
Entity(int a)
{
std::cout << a << std::endl;
}
Entity(const std::string& s)
{
std::cout << s << std::endl;
}
};
int main()
{
Entity e1 = (10,20);
Entity e2 = (10,20,30);
Entity e3 = (10,30,40);
Entity e4 = (std::string("Hello"),std::string("World"));
return 0;
}
上述程序的输出为
20
30
40
World
谁能告诉我为什么只打印传递的最后一个值(整数、字符串)?
注意:如果构造函数是explicit
,那么会出现编译错误。为什么这个输出带有 implicit
构造函数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。