C++中需要什么才能始终使用引用而不是指针?

Ste*_*ini 3 c++

根据我在网上发现的内容,你应该尽可能多地使用引用,除非你必须使用指针.据我所知,使用指针的唯一原因是:

  • 处理原始内存
  • 当你可能必须返回null
  • 当您从new()处理返回的新分配对象时.

第一个不能真正处理.这是任务中的内在因素.第二个可以由Null对象模式处理,并返回对该Null对象的引用.它要求您为每个希望能够引用为Null的类实例定义一个Null对象.第三个可以用智能指针处理.

我想知道的是:是否可以"使用C++编写Java"并完全使用引用完全忽略指针?是否有可能通过语言在C++中定义一个像Java一样的空对象?

很抱歉,如果问题说得不好或常见问题解答,我在C++上非常生疏,我必须在其中开始一个新项目,所以我需要重新学习一些新东西并习惯以不同的方式思考.

Alo*_*ave 7

你不能重新安装一个引用,但是你可以重命一个指针来指向新的变量,这个行为无论如何都不能在引用中模拟(引用始终保持与它们被初始化的变量绑定),并且指针实现这一点时提供的便利实际上会使没有指针的C++,只有参考几乎不可能.


Xeo*_*Xeo 7

需要什么?可重复引用 - 也称指针.参考资料一旦受到约束,就无法改变其裁判.

struct Anchor{ /*some data*/ };

struct Sprite{
  void set_anchor(Anchor const& a){ _anchor = &a; }
  Anchor const* _anchor;
};

struct Entity{
  Anchror _anchor;
};
Run Code Online (Sandbox Code Playgroud)

有了这样的东西,你可以Sprite通过改变它的锚点来重新定位屏幕.你会如何用引用来做到这一点?

  • @Kerrek:嗯......猜猜这是如何实现的.:) (2认同)