关于#c++#的问题,请各位专家解答!

#创建了一个类


class Player :public Game
{
    std::string m_Name;
public:
    Player(std::string& name) {            //&是干嘛用的 为什么用引用
        m_Name = name;
    }
    std::string game() { return m_Name; }
};
class Player :public Game
{
    std::string m_Name;
public:
    Player(std::string name) {            //阿巴阿巴 
        m_Name = name;
    }
    std::string game() { return m_Name; }
};

#这两个构造函数的参数有什么区别与不同,会产生怎样的效果嘞
#Windows11 VS

对构造函数本身没啥影响,效果一样
区别是对传入变量可能有影响,因为第一种方法中,构造函数内可能对传入变量name进行修改,导致外部传入变量值被改变
如果明确不允许构造函数内修改name,那么可以改为
Player(const std::string &name)
用引用的好处是变量传递效率比较高,相当于指针,只传递一个地址,而不需要将字符串完全复制一份