直接初始化一个类,为什么被认为是个函数?

[复制链接]
查看11 | 回复3 | 2013-7-22 18:12:13 | 显示全部楼层 |阅读模式
Test A(Test());这种写法应该是错误的吧,如果不是错误的也不应该采用Test A(Test(*)())声明了一个函数,函数名为A,参数为一个Test类型的函数指针,返回值为Test类型的变量满意请采纳,不满意请追问...
回复

使用道具 举报

千问 | 2013-7-22 18:12:13 | 显示全部楼层
因为C++中一个类有一个默认的无参数的构造函数,并且该函数名与类名相同,所以Test A(Test())就是指用无参数构造函数构造Test类的对象A。可以简写为Test A;Test A(Test(*)())是声明Test类的带一个参数的构造函数,该参数是一个Test类对象。但是该对象不是直接得到,而是需要通过调用一个函数得到,而且该函数名本身又...
回复

使用道具 举报

千问 | 2013-7-22 18:12:13 | 显示全部楼层
A不会是函数啊。等同于:Test anomA;Test A(anomA);这是Test A(...)会调用Test的拷贝构造函数...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行