gex*_*ide 6 c++ constructor compiler-errors
当我尝试创建一个具有构造函数的类时,该构造函数通过值获取该类的对象,例如:
class X{
X(){}
X(X x){} //Error!
};
Run Code Online (Sandbox Code Playgroud)
然后g ++抱怨第二个构造函数的以下内容:
error: invalid constructor; you probably meant ‘X (const X&)’
Run Code Online (Sandbox Code Playgroud)
亲爱的编译器,不,我不是指const引用.这一次,我想做我写的:通过值传递参数x!为什么这个无效?
Dim*_*ima 17
您正在尝试创建复制构造函数,并且复制构造函数必须使用引用.否则,当您按值将x传递给构造函数时,编译器必须创建x的临时副本,为此需要调用复制构造函数,为此需要创建临时副本....广告.
因此,复制构造函数必须通过引用获取其参数以防止无限递归.