类的对象直接赋值操作是什么语法

如图片中的代码,打星星的那一行,如此操作是什么语法,代码也能正常运行

img

t = i;那行实际上等价于t = Product(i);
由于用户没有为Product定义拷贝赋值运算符,编译器会自动为其生成一个拷贝赋值运算符,默认拷贝赋值运算符是按成员拷贝赋值。
t = Product(i);就是用i的值调用Product::Product(int)构造函数构建一个临时对象,然后调用编译器生成的Product::operator=(const Product&)拷贝赋值运算符把临时对象赋值给t对象。