在CompositionalModel
下面的代码中是一个抽象类。类OpModel
提供了虚拟功能的实现。
在类CompilationUnit
中,有一个成员变量model
,它是一个指向OpModel
类的指针。
我的问题是:方法model()
取消引用该指针,并将其返回为CompositionalModel类型的引用。现在取消引用指针并将其作为引用返回时,可以在其上调用方法的对象吗?
答案 0 :(得分:1)
C ++当您取消对指向类对象的指针的引用,然后将其作为引用返回时,可以在此引用上调用方法
是的,您可以调用引用的成员函数。
但是,请注意,如果指针未指向(兼容类型的)对象,则间接(即取消引用)指针具有不确定的行为。在示例程序中,model_
从未初始化为指向对象,因此示例具有UB。