C ++当您取消引用指向类对象的指针,然后将其作为引用返回时,可以在该引用上调用方法吗?

时间:2018-08-07 15:39:34

标签: c++ class pointers inheritance reference

CompositionalModel下面的代码中是一个抽象类。类OpModel提供了虚拟功能的实现。

在类CompilationUnit中,有一个成员变量model,它是一个指向OpModel类的指针。

我的问题是:方法model()取消引用该指针,并将其返回为CompositionalModel类型的引用。现在取消引用指针并将其作为引用返回时,可以在其上调用方法的对象吗?

1 个答案:

答案 0 :(得分:1)

  

C ++当您取消对指向类对象的指针的引用,然后将其作为引用返回时,可以在此引用上调用方法

是的,您可以调用引用的成员函数。

但是,请注意,如果指针未指向(兼容类型的)对象,则间接(即取消引用)指针具有不确定的行为。在示例程序中,model_从未初始化为指向对象,因此示例具有UB。