在这个程序中,构造函数被用于把int类型的值转换为class A类型的对象。赋值过程本质上是一个调用赋值运算符的函数调用,在这个过程中类型转换发生了。这个类型转换是通过构造函数实现的,因此构造函数又被调用了一遍。而int类型的值可以赋值给类对象,这是因为发生了隐式转换,就相当于int类型赋值给double类型的情况。如果想要禁止这种隐式转换,可以使用explicit关键字。
2023-06-13 371 0
在这个程序中,构造函数被用于把int类型的值转换为class A类型的对象。赋值过程本质上是一个调用赋值运算符的函数调用,在这个过程中类型转换发生了。这个类型转换是通过构造函数实现的,因此构造函数又被调用了一遍。而int类型的值可以赋值给类对象,这是因为发生了隐式转换,就相当于int类型赋值给double类型的情况。如果想要禁止这种隐式转换,可以使用explicit关键字。