gpt4 book ai didi

c++为什么返回对基抽象类的引用

转载 作者:搜寻专家 更新时间:2023-10-31 00:52:26 25 4
gpt4 key购买 nike

在下面的类中有一个类型为OpModel 的指针model_,它是一个类。此指针在构造函数中使用 new 初始化以创建 OpModel 对象。很好,您有一个指向有效对象的指针。 model() 方法引用访问实际 OpModel 对象的指针。但我不明白的是,它返回对 CompositionalModel 的引用,这是一个不同的类。

我认为它与多态性有关,因为OpModel 派生自CompositionalModel,它是一个抽象类。但是为什么要返回对基类的引用?

最佳答案

这是 OO 代码中非常典型的事情。

通过返回更窄的基类——想想接口(interface)——调用代码只需要知道它。您可以通过这种方式隐藏各种额外的血腥实现细节。否则,任何调用代码都需要了解有关 CompositionalModel 的所有信息。

此外,这可以将 OpModel 更改为任何其他类型的 CompilationUnit 并且调用代码不需要更改。

关于c++为什么返回对基抽象类的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51749925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com