class circle
{
private:
double a = 0;
public:
circle(void){}
circle(double);
};
circle::circle(double a){
this->a=a;
}
int main(void)
{
circle c1{ 1 };
c1 = { 8 }; //what does it mean? Anonymous Object?
return(0);
}
代码"c1={8}"one_answers"c1 ={8}"圆?它们都是匿名对象吗?
代码"c1={8}"one_answers"c1 ={8}"圆?
它们在这里有相同的效果;它们都构造了一个临时的circle
,然后将其移赋给c1
。
都执行列表初始化(c++ 11以后),在c1={8}
中临时是copy-list-initialized,在c1=circle{8}
中临时是直接list-initialized,最后都调用circle::circle(double)
。