c++中,A A(3)是什么意思?

A是类,其中Aoperator++(){returnA(3);}这个return了之后到底是什么呢?书上说是无名临时对象?那我能在类的外面直接写AA(3)这样么?... A是类,其中
A operator++()
{

return A(3);
}

这个return了之后到底是什么呢?书上说是无名临时对象?

那我能在类的外面直接写A A(3)这样么?
展开
 我来答
殷帝辛子受
2013-06-06 · 超过23用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:53万
展开全部
对于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)
百度网友cd3d6c4
2013-06-06 · TA获得超过315个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:280万
展开全部
是的,是临时创建的一个对象,因为临时对象用完就消失,故不需要名字,写成A a(3);
A A(3)也不会错,但是一般不这么写,类名和对象名一样,容易乱掉
追问
临时对象我知道啊,不过这是无名临时对象啊,一般临时对象也是有名的吧
追答
因为有名无名不会有影响,所以在这里可以用无名的,当然,你也有名的也不会错,只是效率每无名的高
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酷管家C350d
2013-06-06 · TA获得超过389个赞
知道小有建树答主
回答量:419
采纳率:0%
帮助的人:271万
展开全部
可以直接写A(3)。
这样做是没问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bear1200
2013-06-06 · TA获得超过383个赞
知道小有建树答主
回答量:755
采纳率:0%
帮助的人:483万
展开全部
A a=A(3);是可以的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人类知识分享官
2018-01-03 · 作一切人类知识的分享
人类知识分享官
采纳数:0 获赞数:1

向TA提问 私信TA
展开全部
就是调用构造函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式