【发布时间】:2026-01-14 00:35:01
【问题描述】:
在下面的代码中CompositionalModel 是一个抽象类。 OpModel 类提供了虚函数的实现。
在CompilationUnit 类中有一个成员变量model,它是一个指向OpModel 类的指针。
我的问题是:方法model() 取消引用指针并将其作为CompositionalModel 类型的引用返回。当您取消引用指针并将其作为引用返回时,您现在可以调用方法的对象吗?
【问题讨论】:
-
是的,你可以。你可以简单地尝试一下。
-
为什么你认为这不可能?你遇到了什么问题?无意冒犯,但如果没有这些信息,这个问题就毫无意义
-
请注意,如果
model_未在CompilationUnit::CompilationUnit()中初始化或存储nullptr,则*model_将返回无效引用。在这种情况下,访问此引用是未定义的行为。 (如果你很幸运,你的程序只是崩溃了,你可以在核心转储/调试器中看到任何原因。)为了清楚起见,你也可以公开CompilationUnit::CompilationUnit()的实现。
标签: c++ class pointers inheritance reference