c++ - std::optional 和多态性

标签 c++ option-type

我在许多关于 Stack Overflow 的帖子中读到,当使用指针(用于参数或返回值)并且允许使用 nullptr(使其成为可选)时,通常最好使用 std::optional 代替。

但是如果指针指向多态类型呢?最好使用 std::optional 还是指针?

最佳答案

optional 不适用于多态类型。它是一种值类型,多态基类在 optional 中不起作用。就像将多态基类放在 vector 或类似的容器中是行不通的。

返回一个指针。通常将建议表述为“一般”是有原因的。

关于c++ - std::optional 和多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37369429/

相关文章:

ios - 如何在 ViewController 中添加一个简单的按钮?

java - StreamSupplier 的 IllegalStateException

c++ - 在 emacs 中将 .h 设置为 c++ 模式组

c++ - Tilemap 碰撞 SFML C++

java - 什么是惯用的 "functional"方法来获取 Optional<String> 并在 null 或空时返回默认字符串,否则返回修改后的字符串?

swift - 链表中的可选节点

c++ - 使析构函数不是虚拟的,并在特殊情况下删除基指针是否安全?

C++ 设计模式 : Possible to have inherited method private to derived class?

c++ - 在共享项目中包含代码仅在选择 x64 平台时有效

c++ - optional<reference_wrapper<T>> 与 optional<T>& - 实际示例?