C++ C+中的可重新分配引用+;

C++ C+中的可重新分配引用+;,c++,C++,我有一个类,它有一个需要重新分配的引用字段。但与指针不同,它不能为null 要求: 引用语法:field.foo()调用方法,而不是field->foo() 可重新分配:foo=new\u val;//好的 可以在C++中对模型进行建模吗? < P>是的。使用std::reference\u包装,而不是原始引用。是。使用std::reference\u wrapper而不是原始引用。您不能重新分配引用。引用在初始化时绑定,无法重置。您还没有说为什么您认为需要这样做-听起来像是XY问题。@Ro

我有一个类,它有一个需要重新分配的引用字段。但与指针不同,它不能为null

要求:

  • 引用语法:
    field.foo()
    调用方法,而不是
    field->foo()
  • 可重新分配:
    foo=new\u val;//好的


可以在C++中对模型进行建模吗?

< P>是的。使用
std::reference\u包装,而不是原始引用。

是。使用
std::reference\u wrapper
而不是原始引用。

您不能重新分配引用。引用在初始化时绑定,无法重置。您还没有说为什么您认为需要这样做-听起来像是XY问题。@Ron我肯定知道这一点。但是,有可能编写像引用一样工作的智能模板吗?我相信您可以在类中封装一个指针,使其看起来有点像引用。但您为什么要这样做?您不能重新分配引用。引用在初始化时绑定,无法重置。您还没有说为什么您认为需要这样做-听起来像是XY问题。@Ron我肯定知道这一点。但是,有可能编写像引用一样工作的智能模板吗?我相信您可以在类中封装一个指针,使其看起来有点像引用。但你为什么要这么做?谢谢。你现在知道了!不幸的是,在没有.get()的情况下调用方法是不可能的:是的。如果
get()。注意,参考文献包装器< /> >可以隐式转换为相关的引用类型,因此在实践中经常可以避免<代码>()(代码)>。C++中似乎是一个众所周知的问题:谢谢。你现在知道了!不幸的是,在没有.get()的情况下调用方法是不可能的:是的。如果
get()。注意,参考文献包装器< /C> >可隐式转换为相关的引用类型,因此在实践中经常可以避免<代码>()(<)>代码。C++中似乎是一个众所周知的问题: