Vis*_*iva 4 c++ syntax class copy-constructor
我知道复制构造函数必须有一个引用作为参数,以避免对自身进行"无限次调用".我的问题是 - 为什么会发生这种情况,背后的逻辑是什么?
CExample(const CExample& temp)
{
length = temp.length;
}
Run Code Online (Sandbox Code Playgroud)
假设你的副本C'tor的参数是通过值传递的,C'tor所做的第一件事就是复制参数[这就是每个函数,包括构造函数使用by-value参数].为了做到这一点,它必须再次调用C'tor,从原始变量到局部变量...... [并且一遍又一遍......]这将最终导致无限循环.