C ++ | 使用STL双端队列和适配器设计实现堆栈

埃里亚

准备考试并回答了我无法自信回答的问题。假设我们需要使用STL双端队列和适配器设计来实现Stack,以下方法是正确的方法:(只能有一个答案)

1. template <typename T> class stack: public deque<T> {};
2. template <typename T> class stack {private: deque<T>* dptr; };
3. template <typename T> class stack {protected: deque<T>* dptr; };
4. template <typename T> class stack {private: deque<T> {};}
5. template <typename T> class stack: private deque<T> {};
6. template <typename T> class stack {protected: deque<T> d; };

解决方案的任何技巧将不胜感激。谢谢。

保罗·埃文斯

您永远不想公开地从STL容器继承。他们根本不是为它设计的,因为出于“现收现付”的原因,它们没有虚拟析构函数。其他形式的继承只是创建未命名成员,在这种情况下,它们将无济于事(它们对于使用C API很有用)。这样就排除了1和5。因此,现在您可以拥有一个私有成员或受保护成员。选择protected,因为这会使其他继承自您的类的选项保持打开。这样就剩下3和6了。现在您要按值还是指针。这是一个STL容器,在被破坏时可以很高兴地管理自己的资源,这与原始指针不同。所以6是明显的赢家。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++:STL容器适配器

来自分类Dev

C#:了解是否已打开/关闭蓝牙适配器+使用的堆栈类型(以编程方式)

来自分类Dev

在容器排列中使用 C++ 适配器和库函数对象

来自分类Dev

什么是 C++ 标准中的适配器?它与适配器设计模式有什么关系?

来自分类Dev

使用双端队列在C ++中实现循环缓冲区

来自分类Dev

C#:了解是否已打开/关闭蓝牙适配器+所用堆栈的类型(以编程方式)

来自分类Dev

C ++中的包装程序与适配器

来自分类Dev

USB C→DisplayPort适配器支持

来自分类Dev

USB C→DisplayPort适配器支持

来自分类Dev

C ++使用双端队列找到最大的数字?

来自分类Dev

使用适配器填充时c#Datatable强制使用DataType

来自分类Dev

使用适配器设计模式

来自分类Dev

Objective-C,委托作为适配器模式:谁是适配器?

来自分类Dev

拔下C#网络适配器电缆或禁用适配器

来自分类Dev

将QTimeEdit与time_t一起使用-适配器模式C ++

来自分类Dev

如何使用表适配器C#SQL更新DataGridView更改?

来自分类Dev

未使用USB-C适配器检测到外接显示器

来自分类Dev

使用 USB 3.0 转 USB-C 适配器的传输速率

来自分类Dev

C ++双端队列抛出段错误

来自分类Dev

在C ++中以双端队列推回数字

来自分类Dev

C ++双端队列引发Segfaults

来自分类Dev

动态双端队列中的C ++元素

来自分类Dev

如何在gles2中实现和设计Surfacegesturedetector适配器?

来自分类Dev

从JNI / C ++获取Android蓝牙适配器名称

来自分类Dev

C#。检查SQL数据适配器的某些值

来自分类Dev

C ++ 11多个随机数引擎适配器

来自分类Dev

C#如何获取网络适配器指标?

来自分类Dev

C# Wpf 绑定类型适配器

来自分类Dev

在C#中以编程方式启用和禁用适配器的IPv4和IPv6

Related 相关文章

  1. 1

    C ++:STL容器适配器

  2. 2

    C#:了解是否已打开/关闭蓝牙适配器+使用的堆栈类型(以编程方式)

  3. 3

    在容器排列中使用 C++ 适配器和库函数对象

  4. 4

    什么是 C++ 标准中的适配器?它与适配器设计模式有什么关系?

  5. 5

    使用双端队列在C ++中实现循环缓冲区

  6. 6

    C#:了解是否已打开/关闭蓝牙适配器+所用堆栈的类型(以编程方式)

  7. 7

    C ++中的包装程序与适配器

  8. 8

    USB C→DisplayPort适配器支持

  9. 9

    USB C→DisplayPort适配器支持

  10. 10

    C ++使用双端队列找到最大的数字?

  11. 11

    使用适配器填充时c#Datatable强制使用DataType

  12. 12

    使用适配器设计模式

  13. 13

    Objective-C,委托作为适配器模式:谁是适配器?

  14. 14

    拔下C#网络适配器电缆或禁用适配器

  15. 15

    将QTimeEdit与time_t一起使用-适配器模式C ++

  16. 16

    如何使用表适配器C#SQL更新DataGridView更改?

  17. 17

    未使用USB-C适配器检测到外接显示器

  18. 18

    使用 USB 3.0 转 USB-C 适配器的传输速率

  19. 19

    C ++双端队列抛出段错误

  20. 20

    在C ++中以双端队列推回数字

  21. 21

    C ++双端队列引发Segfaults

  22. 22

    动态双端队列中的C ++元素

  23. 23

    如何在gles2中实现和设计Surfacegesturedetector适配器?

  24. 24

    从JNI / C ++获取Android蓝牙适配器名称

  25. 25

    C#。检查SQL数据适配器的某些值

  26. 26

    C ++ 11多个随机数引擎适配器

  27. 27

    C#如何获取网络适配器指标?

  28. 28

    C# Wpf 绑定类型适配器

  29. 29

    在C#中以编程方式启用和禁用适配器的IPv4和IPv6

热门标签

归档