首页 > 解决方案 > 返回对未定义指针的引用

问题描述

如果一个类有一个未定义的指针作为私有变量,如果观察者函数如下所示,如何检查指针是否有效:

Class Foo
{
  private:
    Object * object;
  public:
    Foo();
    virtual const Object & get_object() const { return * object; }
}

标签: c++pointersreference

解决方案


在构造函数中(在初始化列表中),您可以Object *objectnullptr

Foo::Foo()
:
object(nullptr)
{}

并在该get_object()方法中,进行 if-check 以确保object在取消引用之前不为空:

if(object)
  return *object;
else
  // create and return a new Object depending on your use-case.

推荐阅读