c++中,A A(3)是什么意思?
A是类,其中Aoperator++(){returnA(3);}这个return了之后到底是什么呢?书上说是无名临时对象?那我能在类的外面直接写AA(3)这样么?...
A是类,其中
A operator++()
{
return A(3);
}
这个return了之后到底是什么呢?书上说是无名临时对象?
那我能在类的外面直接写A A(3)这样么? 展开
A operator++()
{
return A(3);
}
这个return了之后到底是什么呢?书上说是无名临时对象?
那我能在类的外面直接写A A(3)这样么? 展开
5个回答
展开全部
对于A类对象,可以通过A a(10);这种方法构造。其中会调用A::A( const int a){}这样的copy construction。在使用A(3)这种写法就是构造了一个临时的对象,并不给他变量名称。在类外面你要构造临时的对象,也仍可以直接使用A(3);
追问
可以直接写A(3)?是直接写 A A(3);还是直接写A(3)?
追答
直接写A(3),这里相当于调用了A(const int&){}这个函数。
要是你非要写类型,必须制定变量名:A a(3)
展开全部
是的,是临时创建的一个对象,因为临时对象用完就消失,故不需要名字,写成A a(3);
A A(3)也不会错,但是一般不这么写,类名和对象名一样,容易乱掉
A A(3)也不会错,但是一般不这么写,类名和对象名一样,容易乱掉
追问
临时对象我知道啊,不过这是无名临时对象啊,一般临时对象也是有名的吧
追答
因为有名无名不会有影响,所以在这里可以用无名的,当然,你也有名的也不会错,只是效率每无名的高
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以直接写A(3)。
这样做是没问题的。
这样做是没问题的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A a=A(3);是可以的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询