在 C++ 中初始化后更改引用

2024-02-29

    class mClass {
public:
    int uu = 9;
};

    mClass m1;
    mClass m2;

    m1.uu = 8;
    m2.uu = 7;

    mClass& ppp = m1;

    ppp= &m2; //Is it possible to change reference?

可以更改参考吗? 我可以使用带有引用参数的构造函数初始化引用,但我不知道 以后怎么改。


如其他答案所示,您无法重新绑定引用。如果您想要此功能,您可以:

  • 使用原始指针。如果您强制执行所有原始指针都是非拥有的约定,则使用原始指针没有任何问题。更好的选择是gsl::not_null https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Ri-nullptr来自 C++ 指南支持库(用于代码安全和代码自文档)。
  • use std::reference_wrapper https://en.cppreference.com/w/cpp/utility/functional/reference_wrapper. Its operator= https://en.cppreference.com/w/cpp/utility/functional/reference_wrapper/operator%3D重新绑定参考。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中初始化后更改引用 的相关文章

随机推荐