有以下代码:SomeClass的的使用一个参数匿名对象不能被声明
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参数可以声明,但是它不能与只有1参数进行声明。我认为写
SomeClass(a);
相同
SomeClass a;
如何创建匿名对象有一个说法?
@BoBTFish:不。他基本上是通过功能强化语法创建一个临时对象。你不直接调用构造函数;甚至没有你发布的代码实际上这样做 – 2012-03-20 16:21:39
可能重复[这个AnonymousClass(变量)声明实际上发生了什么?](http://stackoverflow.com/questions/6341951/whats-actually-going-on-in-这个匿名类变量声明) – Nawaz 2012-03-20 16:31:58