有这样的代码:
class SomeClass
{
public:
SomeClass(){}
SomeClass(SomeClass& b){}
SomeClass(SomeClass&b, SomeClass& c){}
};
int main()
{
SomeClass a;
SomeClass(); // works all right
//SomeClass(a); error: redeclaration of ‘SomeClass a’
SomeClass(a, a); // works all right
return 0;
}
可以声明具有 0 和 2 个参数的 SomeClass 匿名对象,但不能仅声明 1 个参数。我假设写作
SomeClass(a);
是相同的
SomeClass a;
如何使用一个参数创建匿名对象?
您可以在自己的语句中构造一个临时对象,如下所示:
(SomeClass)a;
or
(SomeClass(a));
正如您所观察到的,需要括号来解决声明和表达式语句之间的歧义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)